width:10px;
height:10px;
}background:linear-gradient(180deg, var(--brick2), var(--brick));
border-radius:999px;
}
@media(max-width:1180px) {
#story .player-skill-grid,
#story .home-stats-card .skillbox.compact-skills,
#story .home-stats-card .skillbox.player-skill-grid {
grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
}
}
@media(max-width:700px) {
#story .player-skill-grid,
#story .home-stats-card .skillbox.compact-skills,
#story .home-stats-card .skillbox.player-skill-grid {
grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
gap:7px !important;
}
#story .player-skill-label,
#story .player-skill-tile > .skill-label,
#story .home-stats-card .skillrow > .skill-label {
font-size:.74rem !important;
}
}
@media(max-width:560px) {
#story .identity-card .girl-identity-head {
display:grid !important;
grid-template-columns:1fr auto !important;
align-items:baseline !important;
gap:4px 10px !important;
}
#story .identity-card .girl-identity-name {
white-space:normal !important;
}
#story .identity-card .girl-identity-traits {
grid-column:1 / -1 !important;
min-width:0 !important;
}
}
@media(max-width:360px) {
#story .player-skill-grid,
#story .home-stats-card .skillbox.compact-skills,
#story .home-stats-card .skillbox.player-skill-grid {
grid-template-columns:1fr !important;
}
#story .identity-card .girl-identity-head {
display:flex !important;
flex-direction:column !important;
align-items:flex-start !important;
}
}background:#100d0a;
}<<run setup.CC.init()>>
<<set $cc.view = "character">>
<<set $cc.passageHint = "Character Creation">>
<<= setup.CC.view("character") >><<run setup.CC.init()>>
<<set $cc.view = "cheatsSupport">>
<<set $cc.passageHint = "Cheats Support">>
<<= setup.CC.view("cheatsSupport") >>/% CHARACTER_CREATION
{
"questions": [
{
"id": "origin",
"label": "Where did your life start?",
"options": [
{
"id": "quiet_suburb",
"label": "A quiet suburb",
"desc": "Stable streets made you observant, polite, and patient.",
"bonuses": {
"focus": 6,
"empathy": 5,
"charm": 4,
"finance": 3
}
},
{
"id": "inner_blocks",
"label": "Dense inner blocks",
"desc": "Crowded streets taught you speed, nerve, and presence.",
"bonuses": {
"hustle": 6,
"willpower": 5,
"dominance": 4,
"anal": 3
}
},
{
"id": "student_district",
"label": "A student district",
"desc": "Books, debate, and screens were always nearby.",
"bonuses": {
"intelligence": 6,
"informatic": 5,
"focus": 4,
"oral": 3
}
},
{
"id": "coastal_town",
"label": "A coastal town",
"desc": "Open air, movement, and good light shaped your habits.",
"bonuses": {
"fitness": 6,
"sports": 5,
"photography": 4,
"penetration": 3
}
},
{
"id": "old_town_kitchens",
"label": "Old town kitchens",
"desc": "You grew up around food, music, and people talking late.",
"bonuses": {
"cooking": 6,
"music": 5,
"massage": 4,
"touching": 3
}
},
{
"id": "arts_commune",
"label": "An arts commune",
"desc": "Performers, painters, and loose schedules made you expressive.",
"bonuses": {
"art": 6,
"teasing": 5,
"kissing": 4,
"charm": 3
}
}
]
},
{
"id": "childhood",
"label": "What filled your childhood?",
"options": [
{
"id": "helped_home",
"label": "Helping at home",
"desc": "You cooked, cleaned, and noticed what others needed.",
"bonuses": {
"cooking": 6,
"empathy": 5,
"focus": 4,
"finance": 3
}
},
{
"id": "played_team_sports",
"label": "Team sports",
"desc": "Practice, bruises, routines, and locker room confidence.",
"bonuses": {
"fitness": 6,
"sports": 5,
"willpower": 4,
"dominance": 3
}
},
{
"id": "built_computers",
"label": "Building computers",
"desc": "You broke parts, fixed them, and learned logic the hard way.",
"bonuses": {
"informatic": 6,
"intelligence": 5,
"hustle": 4,
"penetration": 3
}
},
{
"id": "drew_and_shot",
"label": "Drawing and photos",
"desc": "You learned faces, framing, and small visual details.",
"bonuses": {
"art": 6,
"photography": 5,
"charm": 4,
"kissing": 3
}
},
{
"id": "learned_instruments",
"label": "Learning instruments",
"desc": "Timing, rhythm, and performance became familiar.",
"bonuses": {
"music": 6,
"teasing": 5,
"oral": 4,
"touching": 3
}
},
{
"id": "watched_people",
"label": "Watching people",
"desc": "You studied moods, habits, and who held power in a room.",
"bonuses": {
"empathy": 6,
"massage": 5,
"anal": 4,
"focus": 3
}
}
]
},
{
"id": "teen_years",
"label": "What shaped your teen years?",
"options": [
{
"id": "part_time_hustles",
"label": "Part-time hustles",
"desc": "You chased cash, favors, and better ways to spend time.",
"bonuses": {
"hustle": 6,
"finance": 5,
"charm": 4,
"cooking": 3
}
},
{
"id": "library_afternoons",
"label": "Library afternoons",
"desc": "You built patience, vocabulary, and discipline in silence.",
"bonuses": {
"intelligence": 6,
"focus": 5,
"willpower": 4,
"informatic": 3
}
},
{
"id": "amateur_performance",
"label": "Amateur performance",
"desc": "Stages and attention made you playful under pressure.",
"bonuses": {
"music": 6,
"teasing": 5,
"kissing": 4,
"art": 3
}
},
{
"id": "martial_practice",
"label": "Martial practice",
"desc": "You learned balance, contact, and controlled aggression.",
"bonuses": {
"fitness": 6,
"dominance": 5,
"sports": 4,
"anal": 3
}
},
{
"id": "first_relationships",
"label": "First relationships",
"desc": "You learned closeness, hesitation, and when touch matters.",
"bonuses": {
"empathy": 6,
"touching": 5,
"oral": 4,
"penetration": 3
}
},
{
"id": "online_side_gigs",
"label": "Online side gigs",
"desc": "You worked with screens, edits, payments, and clients.",
"bonuses": {
"photography": 6,
"finance": 5,
"informatic": 4,
"massage": 3
}
}
]
},
{
"id": "early_work",
"label": "What was your first serious work?",
"options": [
{
"id": "kitchen_helper",
"label": "Kitchen helper",
"desc": "Fast hands, timing, heat, and pressure trained you.",
"bonuses": {
"cooking": 6,
"hustle": 5,
"focus": 4,
"oral": 3
}
},
{
"id": "retail_assistant",
"label": "Retail assistant",
"desc": "You handled strangers without losing patience.",
"bonuses": {
"charm": 6,
"empathy": 5,
"willpower": 4,
"kissing": 3
}
},
{
"id": "photo_freelancer",
"label": "Photo freelancer",
"desc": "You chased light, angles, clients, and payment.",
"bonuses": {
"photography": 6,
"art": 5,
"finance": 4,
"teasing": 3
}
},
{
"id": "it_support",
"label": "IT support",
"desc": "You solved tedious problems while people panicked nearby.",
"bonuses": {
"informatic": 6,
"intelligence": 5,
"focus": 4,
"penetration": 3
}
},
{
"id": "massage_assistant",
"label": "Massage assistant",
"desc": "You practiced pressure, pace, and reading physical tension.",
"bonuses": {
"massage": 6,
"touching": 5,
"sports": 4,
"anal": 3
}
},
{
"id": "nightlife_runner",
"label": "Nightlife runner",
"desc": "Noise, flirting, favors, and pressure became normal.",
"bonuses": {
"hustle": 6,
"fitness": 5,
"dominance": 4,
"music": 3
}
}
]
},
{
"id": "comfort_zone",
"label": "What pulled you out of your comfort zone?",
"options": [
{
"id": "late_night_parties",
"label": "Late-night parties",
"desc": "Noise, dancing, flirting, and crowded rooms taught you timing.",
"bonuses": {
"charm": 6,
"teasing": 5,
"music": 4,
"kissing": 3
}
},
{
"id": "rough_training_partners",
"label": "Rough training partners",
"desc": "You learned balance, stamina, and how to hold your ground.",
"bonuses": {
"fitness": 6,
"sports": 5,
"willpower": 4,
"dominance": 3
}
},
{
"id": "intimate_experiments",
"label": "Intimate experiments",
"desc": "You learned to read breath, hesitation, and physical feedback up close.",
"bonuses": {
"touching": 6,
"oral": 5,
"penetration": 4,
"empathy": 3
}
},
{
"id": "careful_taboo_curiosity",
"label": "Careful taboo curiosity",
"desc": "You learned that delicate pressure needs patience, control, and trust.",
"bonuses": {
"anal": 6,
"focus": 5,
"intelligence": 4,
"informatic": 3
}
},
{
"id": "paid_creative_jobs",
"label": "Paid creative jobs",
"desc": "You sold taste, angles, style, and quick solutions for real money.",
"bonuses": {
"photography": 6,
"art": 5,
"finance": 4,
"hustle": 3
}
},
{
"id": "hands_on_care",
"label": "Hands-on care",
"desc": "You helped with sore bodies, tense moods, and practical comforts.",
"bonuses": {
"massage": 6,
"cooking": 5,
"empathy": 4,
"focus": 3
}
}
]
},
{
"id": "social_style",
"label": "How do people usually read you?",
"options": [
{
"id": "warm_listener",
"label": "Warm listener",
"desc": "You make people feel heard before you push forward.",
"bonuses": {
"empathy": 6,
"charm": 5,
"cooking": 4,
"oral": 3
}
},
{
"id": "playful_tease",
"label": "Playful tease",
"desc": "You test reactions with jokes, looks, and timing.",
"bonuses": {
"teasing": 6,
"kissing": 5,
"music": 4,
"art": 3
}
},
{
"id": "direct_leader",
"label": "Direct leader",
"desc": "You decide quickly and make hesitation feel unnecessary.",
"bonuses": {
"dominance": 6,
"willpower": 5,
"hustle": 4,
"anal": 3
}
},
{
"id": "calm_observer",
"label": "Calm observer",
"desc": "You slow things down and watch for the useful detail.",
"bonuses": {
"focus": 6,
"intelligence": 5,
"informatic": 4,
"photography": 3
}
},
{
"id": "smooth_networker",
"label": "Smooth networker",
"desc": "You remember names, value, and how people want to be seen.",
"bonuses": {
"charm": 6,
"finance": 5,
"massage": 4,
"penetration": 3
}
},
{
"id": "stubborn_protector",
"label": "Stubborn protector",
"desc": "You stand your ground and use your body with care.",
"bonuses": {
"willpower": 6,
"fitness": 5,
"touching": 4,
"sports": 3
}
}
]
},
{
"id": "personal_study",
"label": "What did you study for yourself?",
"options": [
{
"id": "home_cooking",
"label": "Home cooking",
"desc": "You studied flavor, timing, shopping, and hospitality.",
"bonuses": {
"cooking": 6,
"empathy": 5,
"finance": 4,
"touching": 3
}
},
{
"id": "coding_projects",
"label": "Coding projects",
"desc": "You built tools, scripts, and a habit of testing details.",
"bonuses": {
"informatic": 6,
"intelligence": 5,
"focus": 4,
"penetration": 3
}
},
{
"id": "money_tracking",
"label": "Money tracking",
"desc": "You learned budgets, deals, and how to stretch a small start.",
"bonuses": {
"finance": 6,
"hustle": 5,
"willpower": 4,
"anal": 3
}
},
{
"id": "visual_arts",
"label": "Visual arts",
"desc": "You practiced style, pose, framing, and presentation.",
"bonuses": {
"art": 6,
"photography": 5,
"teasing": 4,
"kissing": 3
}
},
{
"id": "music_nights",
"label": "Music nights",
"desc": "You studied rhythm, mood, timing, and attention.",
"bonuses": {
"music": 6,
"charm": 5,
"oral": 4,
"dominance": 3
}
},
{
"id": "bodywork_notes",
"label": "Bodywork notes",
"desc": "You studied posture, soreness, touch, and recovery.",
"bonuses": {
"massage": 6,
"sports": 5,
"fitness": 4,
"focus": 3
}
}
]
},
{
"id": "drive",
"label": "What drives you now?",
"options": [
{
"id": "stability",
"label": "Stability",
"desc": "You want money, routine, and fewer surprises.",
"bonuses": {
"finance": 6,
"willpower": 5,
"focus": 4,
"cooking": 3
}
},
{
"id": "recognition",
"label": "Recognition",
"desc": "You want to be seen, remembered, and desired.",
"bonuses": {
"photography": 6,
"charm": 5,
"art": 4,
"kissing": 3
}
},
{
"id": "discipline",
"label": "Discipline",
"desc": "You trust effort, training, and repeatable results.",
"bonuses": {
"willpower": 6,
"fitness": 5,
"sports": 4,
"dominance": 3
}
},
{
"id": "curiosity",
"label": "Curiosity",
"desc": "You want to understand systems, people, and taste.",
"bonuses": {
"intelligence": 6,
"informatic": 5,
"music": 4,
"massage": 3
}
},
{
"id": "pleasure",
"label": "Pleasure",
"desc": "You want confidence, touch, and intimate skill.",
"bonuses": {
"touching": 6,
"oral": 5,
"penetration": 4,
"empathy": 3
}
},
{
"id": "control",
"label": "Control",
"desc": "You want to guide the room and test limits carefully.",
"bonuses": {
"dominance": 6,
"anal": 5,
"teasing": 4,
"hustle": 3
}
}
]
}
]
}
END_CHARACTER_CREATION %//% DATA_LOCATIONS
{
"home": {
"number": 0,
"name": "Your home",
"icon": "🏠",
"vibe": "private",
"desc": "Private base, rest, work, sleep."
},
"loc1": {
"number": 1,
"name": "Gym",
"icon": "🏋️",
"vibe": "active",
"desc": "Weights, sweat, mirrors, motion."
},
"loc2": {
"number": 2,
"name": "Mall",
"icon": "🛍️",
"vibe": "public",
"desc": "Shops, food, errands, crowds."
},
"loc3": {
"number": 3,
"name": "Low Income Residential",
"icon": "🏚️",
"vibe": "street",
"desc": "Cheap flats, bus stops, corner stores."
},
"loc4": {
"number": 4,
"name": "High Income Residential",
"icon": "🏘️",
"vibe": "quiet",
"desc": "Clean streets, gates, quiet courtyards."
},
"loc5": {
"number": 5,
"name": "University Library",
"icon": "📚",
"vibe": "study",
"desc": "Books, laptops, whispers, focus."
},
"loc6": {
"number": 6,
"name": "Cafe Row",
"icon": "☕",
"vibe": "social",
"desc": "Coffee, pastries, gossip, laptops."
},
"loc7": {
"number": 7,
"name": "Nightclub",
"icon": "🎵",
"vibe": "night",
"desc": "Bass, lights, drinks, heat."
},
"loc8": {
"number": 8,
"name": "City Park",
"icon": "🌳",
"vibe": "calm",
"desc": "Paths, benches, joggers, shade."
},
"loc9": {
"number": 9,
"name": "Beachfront",
"icon": "🏖️",
"vibe": "sun",
"desc": "Sand, sun, towels, volleyball."
},
"loc10": {
"number": 10,
"name": "Office District",
"icon": "🏢",
"vibe": "work",
"desc": "Glass towers, lunch rush, deals."
},
"loc11": {
"number": 11,
"name": "Art Studio",
"icon": "🎨",
"vibe": "creative",
"desc": "Paint, photos, sketches, models."
},
"loc12": {
"number": 12,
"name": "Transit Plaza",
"icon": "🚉",
"vibe": "busy",
"desc": "Trains, buses, kiosks, commuters."
},
"loc13": {
"number": 13,
"name": "Financial District",
"icon": "🏦",
"vibe": "finance",
"desc": "Banks, suits, trades, quick lunches."
},
"loc14": {
"number": 14,
"name": "Wellness Spa",
"icon": "🧖",
"vibe": "wellness",
"desc": "Steam, towels, massage, calm."
}
}
END_DATA_LOCATIONS %//% PHOTO_DATA
{
"basePath": "img",
"fallbackFolder": "00",
"defaultKey": "portrait",
"files": {
"portrait": "portrait.png",
"profile": "portrait.png",
"social_topbot": "social topbot.png",
"social_topund": "social topund.png",
"social_toppus": "social toppus.png",
"social_brabot": "social brabot.png",
"social_braund": "social braund.png",
"social_brapus": "social brapus.png",
"social_titbot": "social titbot.png",
"social_titund": "social titund.png",
"social_naked": "social naked.png",
"massage_topbot": "massage topbot.png",
"massage_topund": "massage topund.png",
"massage_toppus": "massage toppus.png",
"massage_brabot": "massage brabot.png",
"massage_braund": "massage braund.png",
"massage_brapus": "massage brapus.png",
"massage_titbot": "massage titbot.png",
"massage_titund": "massage titund.png",
"massage_naked": "massage naked.png",
"cunnilingus": "cunnilingus.png",
"fingering": "fingering.png",
"blowjob": "blowjob.png",
"handjob": "handjob.png",
"sixtynine": "69.png",
"titjob": "titjob.png",
"titfuck_licktip": "titfuck licktip.png",
"naked_legspread": "naked legspread.png",
"missionary": "missionary.png",
"doggy_sex": "doggy sex.png",
"cowgirl_sex": "cowgirl sex.png",
"revcow_sex": "revcow sex.png",
"standwall_sex": "standwall sex.png",
"anal_missionary": "missionary anal.png",
"anal_doggy": "doggy anal.png",
"anal_cowgirl": "cowgirl anal.png",
"anal_reverse_cowgirl": "revcow anal.png",
"anal_wall": "standwall anal.png",
"cum_on_body": "cum on body.png",
"cum_on_back": "cum back.png",
"cum_on_breasts": "cum tits.png",
"cum_on_face": "cum facial.png",
"cum_in_mouth": "cum mouth.png",
"cum_inside_pussy": "cum creampie.png",
"cum_inside_ass": "cum anal.png",
"footjob": "footjob.png",
"titfuck": "titfuck.png",
"deepthroat": "deepthroat.png",
"analingus": "analingus.png",
"kiss": "kiss.png",
"fingering_anal": "fingering anal.png",
"cafe": "cafe.png",
"gym": "gym.png",
"gallery": "gallery.png"
},
"statePools": {
"social": {
"topbot": "social_topbot",
"topund": "social_topund",
"toppus": "social_toppus",
"brabot": "social_brabot",
"braund": "social_braund",
"brapus": "social_brapus",
"titbot": "social_titbot",
"titund": "social_titund",
"naked": "social_naked"
},
"massage": {
"topbot": "massage_topbot",
"topund": "massage_topund",
"toppus": "massage_toppus",
"brabot": "massage_brabot",
"braund": "massage_braund",
"brapus": "massage_brapus",
"titbot": "massage_titbot",
"titund": "massage_titund",
"naked": "massage_naked"
}
},
"actionMap": {
"introduce": "pool:social",
"ask_about_schedule": "pool:social",
"talk_cooking": "pool:social",
"talk_sports": "pool:social",
"talk_computers": "pool:social",
"talk_finance": "pool:social",
"talk_art": "pool:social",
"talk_photography": "pool:social",
"talk_massage": "pool:social",
"talk_music": "pool:social",
"compliment_style": "pool:social",
"flirt_soft": "pool:social",
"flirt_bold": "pool:social",
"tease_words": "pool:social",
"ask_number": "pool:social",
"ask_address": "pool:social",
"invite_coffee": "cafe",
"invite_workout": "gym",
"invite_gallery": "gallery",
"invite_room": "pool:social",
"invite_private_movie": "pool:social",
"invite_meal": "pool:social",
"invite_photoshoot": "pool:social",
"start_photoshoot": "pool:social",
"photo_full_body": "pool:social",
"photo_breasts": "pool:social",
"photo_legs": "pool:social",
"photo_ass": "pool:social",
"photo_explicit_nude": "pool:social",
"photo_adjust_pose": "pool:social",
"photo_place_hand_between_legs": "pool:social",
"look_eyes": "pool:social",
"admire_outfit": "pool:social",
"gaze_chest": "pool:social",
"gaze_legs": "pool:social",
"whisper_dirty": "pool:social",
"touch_hand": "pool:social",
"touch_arm": "pool:social",
"hug_her": "pool:social",
"caress_thigh": "pool:social",
"pet_over_clothes": "pool:social",
"gentle_command": "pool:social",
"hold_eye_contact_command": "pool:social",
"guide_position": "pool:social",
"dirty_praise": "pool:social",
"massage_start": "pool:massage",
"massage_shoulders": "pool:massage",
"massage_neck": "pool:massage",
"massage_back": "pool:massage",
"massage_lower_back": "pool:massage",
"massage_legs": "pool:massage",
"massage_breasts": "pool:massage",
"massage_ass": "pool:massage",
"massage_inner_thighs": "pool:massage",
"massage_pussy_fabric": "pool:massage",
"massage_pussy_bare": "pool:massage",
"massage_vagina": "pool:massage",
"kiss_cheek": "kiss",
"kiss_lips": "kiss",
"deep_kiss": "kiss",
"finger_pussy": "fingering",
"lick_pussy": "cunnilingus",
"suck_clit": "cunnilingus",
"sit_on_face": "cunnilingus",
"ask_permission_oral": "cunnilingus",
"demand_cunnilingus": "cunnilingus",
"beg_cunnilingus": "cunnilingus",
"sixty_nine": "sixtynine",
"beg_sixty_nine": "sixtynine",
"ask_blowjob": "blowjob",
"demand_blowjob": "blowjob",
"beg_blowjob": "blowjob",
"ask_handjob": "handjob",
"demand_handjob": "handjob",
"beg_handjob": "handjob",
"breast_sex": "titfuck",
"missionary": "missionary",
"cont_sex_missionary": "missionary",
"doggy": "doggy_sex",
"cont_sex_doggy": "doggy_sex",
"cowgirl": "cowgirl_sex",
"cont_sex_cowgirl": "cowgirl_sex",
"reverse_cowgirl": "revcow_sex",
"cont_sex_reverse_cowgirl": "revcow_sex",
"against_wall": "standwall_sex",
"cont_sex_wall": "standwall_sex",
"anal_missionary": "anal_missionary",
"cont_anal_missionary": "anal_missionary",
"anal_doggy": "anal_doggy",
"cont_anal_doggy": "anal_doggy",
"anal_cowgirl": "anal_cowgirl",
"cont_anal_cowgirl": "anal_cowgirl",
"anal_reverse_cowgirl": "anal_reverse_cowgirl",
"cont_anal_reverse_cowgirl": "anal_reverse_cowgirl",
"anal_wall": "anal_wall",
"cont_anal_wall": "anal_wall",
"come_body": "cum_on_body",
"come_boobs": "cum_on_breasts",
"come_face": "cum_on_face",
"come_mouth": "cum_in_mouth",
"come_inside": "cum_inside_pussy",
"come_inside_ass": "cum_inside_ass",
"come_back": "cum_on_back",
"say_goodbye": "pool:social",
"remove_your_clothes": "pool:social",
"ask_top_off": "pool:social",
"try_top_off": "pool:social",
"unhook_bra": "pool:social",
"ask_bra_off": "pool:social",
"ask_bottom_off": "pool:social",
"try_bottom_off": "pool:social",
"remove_panties": "pool:social",
"ask_panties_off": "pool:social",
"strip_together": "pool:social",
"ask_naked": "pool:social",
"make_her_hold_still": "pool:social",
"use_massage_oil": "pool:massage",
"massage_tongue_pussy": "cunnilingus",
"massage_tongue_ass": "analingus",
"rub_breasts_fabric": "pool:social",
"rub_pussy_fabric": "pool:social",
"suck_nipples": "pool:social",
"grind_together": "pool:social",
"ask_permission_finger": "fingering",
"cont_finger_keep": "fingering",
"cont_finger_to_mouth": "cunnilingus",
"cont_cunni_add_fingers": "fingering",
"cont_cunni_keep": "cunnilingus",
"cont_cunni_tease": "cunnilingus",
"cont_cunni_to_analingus": "analingus",
"cont_analingus_keep": "analingus",
"cont_analingus_slow": "analingus",
"cont_analingus_circle": "analingus",
"cont_analingus_to_cunni": "cunnilingus",
"cont_bj_let_continue": "blowjob",
"cont_bj_guide_rhythm": "blowjob",
"cont_bj_praise": "blowjob",
"cont_bj_deeper": "deepthroat",
"cont_bj_slow_down": "blowjob",
"cont_bj_eye_contact": "blowjob",
"cont_bj_touch_hair": "blowjob",
"cont_hj_keep": "handjob",
"cont_hj_guide_rhythm": "handjob",
"cont_hj_kiss": "handjob",
"cont_hj_tease": "handjob",
"cont_hj_to_bj": "blowjob",
"cont_69_keep": "sixtynine",
"cont_69_focus_her": "sixtynine",
"cont_69_let_her_focus_you": "sixtynine",
"cont_69_grind": "sixtynine",
"cont_sex_to_69": "sixtynine",
"anal_talk": "pool:social",
"finger_ass": "fingering_anal",
"cont_anal_finger_keep": "fingering_anal",
"cont_anal_finger_to_fingering": "fingering",
"cont_anal_finger_to_analingus": "analingus",
"cont_finger_tease": "fingering",
"cont_rubbing_keep": "pool:social",
"cont_rubbing_to_fingering": "fingering",
"gaze_ass": "pool:social",
"ask_footjob": "footjob",
"beg_footjob": "footjob",
"demand_footjob": "footjob",
"cont_footjob_keep": "footjob",
"ask_titfuck": "titfuck",
"beg_titfuck": "titfuck",
"demand_titfuck": "titfuck",
"cont_titfuck_keep": "titfuck",
"cont_titfuck_let_work": "titfuck",
"cont_titfuck_lick_tip": "titfuck_licktip",
"demand_sixty_nine": "sixtynine"
},
"imageFallbackKeys": {
"titfuck_licktip": "titfuck",
"deepthroat": "blowjob",
"analingus": "social_naked",
"cafe": "social_topbot",
"gym": "social_topbot",
"gallery": "social_topbot",
"portrait": "social_topbot",
"profile": "social_topbot",
"social_topund": "social_topbot",
"social_toppus": "social_topbot",
"social_brabot": "social_topbot",
"social_braund": "social_topbot",
"social_brapus": "social_topbot",
"social_titbot": "social_topbot",
"social_titund": "social_topbot",
"social_naked": "social_topbot",
"massage_topbot": "social_topbot",
"massage_topund": "social_topund",
"massage_toppus": "social_toppus",
"massage_brabot": "social_brabot",
"massage_braund": "social_braund",
"massage_brapus": "social_brapus",
"massage_titbot": "social_titbot",
"massage_titund": "social_titund",
"massage_naked": "social_naked",
"cunnilingus": "social_topbot",
"fingering": "social_topbot",
"blowjob": "social_topbot",
"handjob": "social_topbot",
"sixtynine": "social_topbot",
"titjob": "social_topbot",
"naked_legspread": "social_topbot",
"missionary": "social_topbot",
"doggy_sex": "social_topbot",
"cowgirl_sex": "social_topbot",
"revcow_sex": "social_topbot",
"standwall_sex": "social_topbot",
"anal_missionary": "social_topbot",
"anal_doggy": "social_topbot",
"anal_cowgirl": "social_topbot",
"anal_reverse_cowgirl": "social_topbot",
"anal_wall": "social_topbot",
"cum_on_body": "social_topbot",
"cum_on_back": "cum_on_body",
"cum_on_breasts": "cum_on_body",
"cum_on_face": "cum_on_body",
"cum_in_mouth": "cum_on_body",
"cum_inside_pussy": "cum_on_body",
"cum_inside_ass": "cum_on_body",
"footjob": "social_topbot",
"titfuck": "social_topbot",
"kiss": "social_topbot",
"fingering_anal": "social_topbot"
}
}
END_PHOTO_DATA %//% DATA_SKILLS
{
"mainSkills": [
"fitness",
"charm",
"empathy",
"hustle",
"intelligence",
"willpower",
"focus"
],
"knowledgeSkills": [
"cooking",
"informatic",
"sports",
"finance",
"art",
"photography",
"massage",
"music"
],
"sexSkills": [
"kissing",
"touching",
"teasing",
"oral",
"penetration",
"anal",
"dominance"
],
"actionTabs": [
"Talk",
"Flirt",
"Touch",
"Petting",
"Sexual",
"Strip",
"Command",
"Climax"
],
"jobTabs": [
"Basic",
"Service",
"Skilled",
"Creative",
"Expert",
"Training"
],
"skillLabels": {
"fitness": "Fitness",
"charm": "Charm",
"empathy": "Empathy",
"hustle": "Hustle",
"intelligence": "Intelligence",
"willpower": "Willpower",
"focus": "Focus",
"cooking": "Cooking",
"informatic": "Informatic",
"sports": "Sports",
"finance": "Finance",
"art": "Art",
"photography": "Photography",
"massage": "Massage",
"music": "Music",
"kissing": "Kissing",
"touching": "Touching",
"teasing": "Teasing",
"oral": "Oral",
"penetration": "Penetration",
"anal": "Anal",
"dominance": "Dominance"
}
}
END_DATA_SKILLS %/Lust is long-term attraction and sexual openness. It rises slowly and survives across days, like trust, affection, obedience, and knowledge.
Arousal is the short-term encounter meter. Some saves may still store it under the older stat name, but the UI and player-facing text call it arousal. Girl arousal rises during relevant intimate actions, resets to 0 at the start of every day, and is hidden when it is 0.
Girl arousal no longer appears in the normal stat list. During interaction it has its own compact bar. Patience also uses a compact bar.
Your arousal has a state:
0-4 is hidden.
5-9 means soft, but getting harder.
10-19 means getting harder.
20-39 means hard.
40-79 means rock hard.
80+ means twitching, you will come soon.
Penetrative actions require you to be at least hard, meaning 20+ arousal.
Your arousal cannot rise past 50 from non-physical stimulation. Talk, flirting, gaze, and massage can build tension, but they cannot push you beyond that cap. Physical stimulation, blowjob, 69, sex, anal, grinding, and similar direct states can push you past 50.
At 100 arousal, normal actions are hidden and only climax choices appear. The girl can accept or physically block the chosen finish. If she blocks it, you still come partly on her and yourself, but gains are weak and trust or affection can drop.
Female orgasms do not stop the current action anymore. The girl can orgasm and you can continue the active rhythm until you come. When you come, your arousal drops to 0 and the active sexual state stops because you are no longer hard.
Continuation actions now cost less stamina, while arousal gains are slower overall. This should make longer escalation possible without turning every encounter into an instant climax.
Most actions can now reach 100% chance if the stats, skills, preferences, arousal and setting support it.
Trust and charm are no longer the answer to everything. Social actions still care about them, but dominance, lust, obedience, arousal, preferences, Touching skill and context have more weight where they make sense. Command actions are meant to build obedience, lust and the player's Dominance skill.
Schedule model: girls now follow deterministic 7 moment x 7 day schedules. The old percentage values are ignored by the engine and hidden from the UI. The player does not know the full table at first: the first schedule clue unlocks at 4 Knowledge, then one additional random stable clue unlocks every 2 Knowledge, up to all 49 clues at 100 Knowledge. Asking about her schedule is harder than before but gives a much larger Knowledge reward. Residential slots require knowing her address before she can appear there or be visited.
END_DATA_STAT_MODEL %/<div id="cc-cheat-dialog-mount" class="cc-cheat-dialog-mount"><p class="muted">Opening cheats menu...</p></div><div id="cc-photo-dialog-mount" class="cc-photo-dialog-mount"><p class="muted">Opening image...</p></div>/% DIALOGUE_DATA
{
"girlId": "g0",
"girl": "Maya Bell",
"readyVariable": "dialogue001ready",
"notes": [],
"heatInterruptions": {
"success": [
"\"Give me a second. What were you asking?\"",
"\"All right, but make it quick. I was comfortable.\""
],
"failure": [
"\"Not now. I can't follow that conversation.\"",
"\"Wait. You picked a bad time for this.\""
],
"successHot": [
"\"I heard you. Give me a second to think.\"",
"\"Ask me again when I can breathe properly.\""
],
"failureHot": [
"\"No. I can't talk about that right now.\"",
"\"Stop a second. You pulled me right out of it.\""
]
},
"responses": [
{
"action": "talk_cooking",
"success": [
"\"You toast the spices first? Okay, now I want to know the rest.\"",
"\"That's how my aunt taught me too. Smell the pan, then decide what it needs.\"",
"\"I tried something like that last week. Mine needed more acid, but the idea worked.\"",
"\"Write that down for me. I'm serious, I'll forget it during the morning rush.\""
],
"failure": [
"\"Wait, when are you adding the salt? That changes the whole thing.\"",
"\"I think you're trying to fix too much at once. Start with the sauce.\"",
"\"That would dry it out. Lower heat and give it another minute.\"",
"\"I'm not following you. Tell me what you actually want the dish to taste like.\""
],
"storyPool": [
{
"reaction": "Maya laughs.",
"dialogue": [
"\"One Saturday I burnt three trays of cinnamon rolls. The oven was running hotter than it said.\"",
"\"I put icing on them and sold them because we had a queue.\"",
"\"A few people liked them. I got the oven checked on Monday.\""
]
},
{
"reaction": "Maya thinks about it.",
"dialogue": [
"\"A supplier once sent smoked paprika instead of regular paprika.\"",
"\"I used it in tomato soup before I noticed, and it tasted wrong all day.\"",
"\"I found the mistake on the delivery note. We had smoked paprika in everything for a week.\""
]
},
{
"reaction": "Maya nods.",
"dialogue": [
"\"My aunt taught me to taste the sauce before adding anything else.\"",
"\"She made me taste it before I reached for the salt.\"",
"\"She was usually right. I still do that at work.\""
]
},
{
"reaction": "Maya smiles.",
"dialogue": [
"\"I used to make soup for the staff after closing from things we would not use the next day.\"",
"\"One of the dishwashers started bringing a container home for his mother.\"",
"\"After that I started making extra. It was cheap, and it helped.\""
]
},
{
"reaction": "Maya smiles again.",
"dialogue": [
"\"A guy once ordered a cappuccino, then told me the foam looked wrong.\"",
"\"He had never had one before. He had seen one in a film.\"",
"\"I made another because it was easier than arguing during a rush.\""
]
},
{
"reaction": "Maya nods.",
"dialogue": [
"\"One morning the milk delivery was late and I had half the menu written around it.\"",
"\"I changed the specials before opening and made soup instead of sandwiches.\"",
"\"People ordered it anyway, so I kept the soup on the board.\""
]
},
{
"reaction": "Maya laughs.",
"dialogue": [
"\"I once made too much lemon curd because I read the scale wrong.\"",
"\"The staff ate it on toast for three days.\"",
"\"Now I check the number before I crack six eggs.\""
]
},
{
"reaction": "Maya smiles.",
"dialogue": [
"\"A regular brought me tomatoes from his garden at the end of summer.\"",
"\"They were too soft for salad, so I roasted them for sauce.\"",
"\"I used it in sandwiches until it was gone.\""
]
},
{
"reaction": "Maya frowns.",
"dialogue": [
"\"I tried a new cake recipe on a quiet afternoon.\"",
"\"It sank in the middle as soon as I took it out of the oven.\"",
"\"I cut it into smaller slices and served it with cream.\""
]
},
{
"reaction": "Maya checks the coffee pot.",
"dialogue": [
"\"Tessa comes in for lunch most Thursdays, usually after a long morning with reports.\"",
"\"She ordered the same soup for a month, then asked why it was different.\"",
"\"I had changed the stock. She was right, unfortunately.\""
]
},
{
"reaction": "Maya sets a spoon down.",
"dialogue": [
"\"Hazel came in before an early shift with twenty minutes to eat.\"",
"\"I put together eggs and toast. She tried to pay me twice.\"",
"\"Now she lets me pack the food before she starts apologising.\""
]
},
{
"reaction": "Maya folds a napkin.",
"dialogue": [
"\"Olivia ordered pastries for a launch once. Half the tray came back untouched.\"",
"\"She wanted to know which things people actually eat when they are standing around talking.\"",
"\"We cut the next order down and nobody noticed.\""
]
},
{
"reaction": "Maya rubs the back of her neck.",
"dialogue": [
"\"Bianca came in after working on my shoulders and said she had forgotten lunch.\"",
"\"I gave her the staff pasta.\"",
"\"She asked for the recipe, which is risky because it changes every time.\""
]
},
{
"reaction": "Maya laughs under her breath.",
"dialogue": [
"\"Keira put a photo of my potato soup on the cafe page.\"",
"\"Three people asked for it before noon.\"",
"\"I had to make the same soup for three days.\""
]
},
{
"reaction": "Maya taps her recipe notebook.",
"dialogue": [
"\"Tessa told me not to price a lunch special by guessing.\"",
"\"She sat at the counter while I added up the ingredients.\"",
"\"She was annoying, but the new price kept it on the board.\""
]
},
{
"reaction": "Maya shakes her head.",
"dialogue": [
"\"Olivia asked whether I could make one dish work for people holding paper plates.\"",
"\"I said yes, then made it too messy.\"",
"\"She made me eat one outside. She was right.\""
]
},
{
"reaction": "Maya nods.",
"dialogue": [
"\"Hazel brought a small container from the kitchen where she works.\"",
"\"It was too salty, but the potatoes were good.\"",
"\"We fixed the seasoning together after closing.\""
]
}
]
},
{
"action": "talk_photography",
"success": [
"\"Morning light would work. You'd get the steam without bleaching the plate.\"",
"\"Keep the crumbs. That's what makes it look like somebody ate there.\"",
"\"I like that framing. You can still see the layers in the pastry.\"",
"\"Could you show me how you got that background? Mine always looks too busy.\""
],
"failure": [
"\"I can't see the food from there. Move closer.\"",
"\"The light's flat. Try the window before you change anything else.\"",
"\"That plate looks better in person. The picture shouldn't make it colder.\"",
"\"Hold on. You're framing everything except the part people would want to eat.\""
],
"storyPool": [
{
"reaction": "Maya laughs.",
"dialogue": [
"\"I tried taking photos of pastries for the menu.\"",
"\"The best one had crumbs everywhere and a bite missing from the corner.\"",
"\"I kept it because it looked like somebody had actually eaten it.\""
]
},
{
"reaction": "Maya nods.",
"dialogue": [
"\"Steam is hard to photograph. It is there, then it is not.\"",
"\"One morning I caught it over a mug just as the light came through the window.\"",
"\"I have tried to get the same photo again, but it never looks right.\""
]
},
{
"reaction": "Maya smiles.",
"dialogue": [
"\"A customer asked me to take a picture of him with a latte.\"",
"\"He held the cup up and asked for three more because he did not like the first one.\"",
"\"They were all blurry, but he was happy with the last one.\""
]
},
{
"reaction": "Maya nods.",
"dialogue": [
"\"I took a picture of a table after a family had left one afternoon.\"",
"\"There were three cups, a chair pulled out and a child's scarf over the back of it.\"",
"\"I liked it more than the tidy photographs I had taken before opening.\""
]
},
{
"reaction": "Maya shakes her head.",
"dialogue": [
"\"I spent an afternoon trying to photograph a slice of pie before the whipped cream melted.\"",
"\"By the time I got the light right, the cream had gone flat.\"",
"\"I ate the pie and used the first photo.\""
]
},
{
"reaction": "Maya smiles.",
"dialogue": [
"\"I took a photo of the coffee machine after we cleaned it properly.\"",
"\"A new employee moved all the trays a week later, and nobody could remember the old setup.\"",
"\"I found the photograph on my phone and used it to put everything back before the morning shift.\""
]
},
{
"reaction": "Maya nods.",
"dialogue": [
"\"Someone left a scarf on a chair one winter.\"",
"\"The sun hit it through the window, so I took a picture before moving it.\"",
"\"The owner came back later. I gave her the scarf and kept the photo.\""
]
},
{
"reaction": "Maya laughs.",
"dialogue": [
"\"I tried taking pictures of the lunch counter during a rush.\"",
"\"Most were blurry because people kept walking in front of it.\"",
"\"One showed a kid choosing between two cakes, so I kept that one.\""
]
},
{
"reaction": "Maya glances toward the front window.",
"dialogue": [
"\"Keira came in early to photograph the menu before we opened.\"",
"\"She moved a sugar jar three inches and waited for the sun to shift.\"",
"\"The final picture made the cafe look tidy for once.\""
]
},
{
"reaction": "Maya grimaces.",
"dialogue": [
"\"Keira told me coffee photographs badly if the steam is fake.\"",
"\"We made six cups and drank none of them.\"",
"\"The one she used went cold while she changed a napkin.\""
]
},
{
"reaction": "Maya smiles.",
"dialogue": [
"\"Tessa saw the new menu photos and said the cake looked expensive enough to raise the price.\"",
"\"I did.\"",
"\"People still bought it.\""
]
},
{
"reaction": "Maya rests her elbows on the counter.",
"dialogue": [
"\"Olivia asked Keira to photograph an event tray from above.\"",
"\"I thought it was a waste of a good croissant.\"",
"\"The picture got us two more catering orders.\""
]
},
{
"reaction": "Maya looks amused.",
"dialogue": [
"\"Hazel had her phone out while Keira was taking cafe shots.\"",
"\"She kept warning people away from the counter while pretending she was not helping.\"",
"\"Keira sent her the croissant photo. Hazel printed it.\""
]
}
]
},
{
"action": "massage_start",
"success": [
"\"Start at the base of my neck. That's where it hurts most.\"",
"\"Start with my shoulders. They've been killing me all day.\""
],
"failure": [
"\"No, I'm too wound up to be touched right now.\"",
"\"Not today. I need some space first.\""
]
},
{
"action": "invite_meal",
"success": [
"\"You're cooking? Yes. Tell me when and what I should bring.\"",
"\"I'd like that. Just don't make three courses on my account.\""
],
"failure": [
"\"Thanks, but I don't have the energy for dinner tonight.\"",
"\"Not this time. I've got an early start tomorrow.\""
]
},
{
"action": "talk_massage",
"success": [
"\"Slow work around the shoulder blade helps more than digging straight into it.\"",
"\"Yes, you have to wait for the muscle to loosen. Forcing it just hurts.\"",
"\"My lower back gets bad after a double shift. Heat helps, then firm hands.\"",
"\"You sound like you know what you're doing. Where did you learn?\""
],
"failure": [
"\"That sounds painful. You're pressing too hard too soon.\"",
"\"No, you don't start with the sorest spot. Work around it first.\"",
"\"I think we're talking about different things. I mean an actual massage.\"",
"\"If somebody tenses up under your hands, you stop and ask what's wrong.\""
],
"storyPool": [
{
"reaction": "Maya rubs one shoulder.",
"dialogue": [
"\"Tamping espresso all day gives you a stupid little ache here.\"",
"\"I barely notice it while I am working, then it starts once I sit down.\"",
"\"A hot shower helps more than anything else.\""
]
},
{
"reaction": "Maya laughs.",
"dialogue": [
"\"A friend once gave me a shoulder massage after a holiday shift.\"",
"\"I jumped when she touched my shoulders because I was so tense.\"",
"\"After a few minutes I realised how much I needed it.\""
]
},
{
"reaction": "Maya winces.",
"dialogue": [
"\"A customer offered to show me a 'real sports massage' once.\"",
"\"He pressed one thumb into my shoulder like he was opening a jar.\"",
"\"I told him he was hurting me. He stopped, but he looked surprised.\""
]
},
{
"reaction": "Maya nods.",
"dialogue": [
"\"My aunt swore by a warm towel on the back of the neck after work.\"",
"\"She kept one ready after long shifts.\"",
"\"I started doing the same thing when I was tired and angry.\""
]
},
{
"reaction": "Maya shrugs.",
"dialogue": [
"\"A friend tried to massage my shoulders after work and started by pressing both thumbs into the sorest spot.\"",
"\"I tensed so hard that she thought she had found the problem and pressed again.\"",
"\"I asked her to start with her palms instead. Once I stopped bracing, it actually helped.\""
]
}
]
},
{
"action": "talk_sports",
"success": [
"\"I could manage that. Short sessions are easier to fit around the cafe.\"",
"\"Stretching after work helps, when I remember to do it.\"",
"\"That makes sense. I run better when I don't start too fast.\"",
"\"Send me that routine. My knees complain after a week behind the counter.\""
],
"failure": [
"\"I can't train like that and still stand through a shift.\"",
"\"That's too much for me. I'd rather build up slowly.\"",
"\"If I can't move the next day, the plan doesn't help me.\"",
"\"I think you're forgetting that rest is part of it.\""
],
"storyPool": [
{
"reaction": "Maya shrugs.",
"dialogue": [
"\"I tried running before work for about a month.\"",
"\"The first week was fine. Then my knees started complaining every morning.\"",
"\"Now I walk instead. It fits better around early shifts.\""
]
},
{
"reaction": "Maya laughs.",
"dialogue": [
"\"One of my regulars is a trainer and keeps giving me exercises while I make his coffee.\"",
"\"Last week he watched me carry a milk crate and told me I was doing it badly.\"",
"\"He showed me a better way. My back hurts less now.\""
]
},
{
"reaction": "Maya grimaces.",
"dialogue": [
"\"I signed up for a charity five-kilometre run once.\"",
"\"I started too fast because everyone else looked comfortable.\"",
"\"The last kilometre took forever. One of my coworkers walked the rest with me.\""
]
},
{
"reaction": "Maya rolls one shoulder.",
"dialogue": [
"\"After a double shift, I usually want to sit down and do nothing.\"",
"\"If I stretch for a few minutes, I feel better the next morning.\"",
"\"I only learned that after ignoring it for too long.\""
]
},
{
"reaction": "Maya shakes her head.",
"dialogue": [
"\"I tried a boxing class with a friend.\"",
"\"The instructor kept telling me to breathe, and I kept holding my breath.\"",
"\"My friend had a great time. I went home with sore arms and never went back.\""
]
}
]
},
{
"action": "talk_art",
"success": [
"\"I like seeing the pencil marks under the paint. It feels unfinished in a good way.\"",
"\"That color reminds me of burnt sugar right before it goes bitter.\"",
"\"The small one works better for me. I keep finding things in it.\"",
"\"I don't know the proper term, but the rough edge is my favorite part.\""
],
"failure": [
"\"I'm not seeing what you're seeing. Which part do you mean?\"",
"\"Maybe. It just feels too clean for me.\"",
"\"I don't know enough to argue, but that one leaves me cold.\"",
"\"You're giving me the gallery card. Tell me what you noticed yourself.\""
],
"storyPool": [
{
"reaction": "Maya nods.",
"dialogue": [
"\"A local painter hung small sketches in the cafe one winter.\"",
"\"One was just a wet pavement and a yellow bus stop.\"",
"\"A customer stood in front of it for a long time, then bought it. She said it reminded her of home.\""
]
},
{
"reaction": "Maya smiles.",
"dialogue": [
"\"A kid drew on a napkin while her mother had coffee.\"",
"\"It was a purple dog with six legs and a very serious face.\"",
"\"Her mother apologised for the mess. I put the drawing behind the counter for months.\""
]
},
{
"reaction": "Maya thinks for a second.",
"dialogue": [
"\"Someone gave me a print that I did not understand at all.\"",
"\"It looked like an empty hallway with one red chair.\"",
"\"At first I did not like it. After a year of opening the cafe alone, I did.\""
]
},
{
"reaction": "Maya shakes her head.",
"dialogue": [
"\"A painter left a small landscape in the cafe with one orange mark across the sky.\"",
"\"I thought it was a mistake and nearly asked whether he wanted to fix it.\"",
"\"A customer bought the painting because of that mark, so I was glad I kept quiet.\""
]
},
{
"reaction": "Maya frowns.",
"dialogue": [
"\"We had a mural outside the cafe for a while.\"",
"\"People complained about the colours until the wall got painted grey again.\"",
"\"After that, a few of them asked if the mural was coming back.\""
]
}
]
},
{
"action": "talk_music",
"success": [
"\"I like the bass under that verse. You notice it more on the second listen.\"",
"\"That singer sounds better when she stops trying to fill every second.\"",
"\"Put that one on again. I missed the start because I was talking.\"",
"\"This would be good while I'm closing. Quiet enough to work over.\""
],
"failure": [
"\"It's not for me. The chorus is doing too much.\"",
"\"I lost the melody somewhere in all that noise.\"",
"\"Maybe it needs another listen, but I'm not getting much from it now.\"",
"\"You keep saying it's intense. What are you actually hearing?\""
],
"storyPool": [
{
"reaction": "Maya smiles.",
"dialogue": [
"\"There is a song I always put on while closing.\"",
"\"It is not my favourite, but it is about the right length for cleaning up.\"",
"\"If it finishes before I am done, I know I have been slow.\""
]
},
{
"reaction": "Maya laughs.",
"dialogue": [
"\"A regular used to play the same sad song on the cafe speakers every Friday.\"",
"\"He said it helped him think.\"",
"\"After a few weeks, everyone in the cafe knew the chorus.\""
]
},
{
"reaction": "Maya thinks about it.",
"dialogue": [
"\"The grinder is loud enough that I mostly hear music in pieces at work.\"",
"\"I hear a chorus, then a bit of bass, then someone singing while I steam milk.\"",
"\"Sometimes I go home with a tune in my head and no idea what song it was.\""
]
},
{
"reaction": "Maya nods.",
"dialogue": [
"\"A singer played a quiet afternoon set in the cafe once.\"",
"\"The songs with the busiest arrangements disappeared every time I used the grinder.\"",
"\"She changed the second half of the set and played the simpler songs while we were serving.\""
]
},
{
"reaction": "Maya smiles.",
"dialogue": [
"\"One of the cooks makes playlists called things like 'Monday recovery.'\"",
"\"They are all cheerful songs from ten years ago.\"",
"\"Nobody chooses them, but everyone ends up singing along.\""
]
}
]
},
{
"action": "talk_finance",
"success": [
"\"So I separate equipment money before I count the rest. That I can use.\"",
"\"I hate looking at those numbers, but a weekly check would be manageable.\"",
"\"That might help with supplier months. They never hit evenly.\"",
"\"Can you show me that again without skipping the boring part?\""
],
"failure": [
"\"I can't follow that many percentages at once.\"",
"\"That doesn't fit a place this small. My margins don't work like that.\"",
"\"You're assuming every bill arrives on schedule. It doesn't.\"",
"\"Start over with the actual cost. I need numbers I can put on paper.\""
],
"storyPool": [
{
"reaction": "Maya rubs her forehead.",
"dialogue": [
"\"The espresso machine needed a repair the same week the freezer started leaking.\"",
"\"I had enough money for one repair and part of another one.\"",
"\"I paid for the machine first and spent the week checking the freezer every hour.\""
]
},
{
"reaction": "Maya nods.",
"dialogue": [
"\"Rainy Tuesdays are worse than people think.\"",
"\"People stay home, orders are small, and the bills still arrive.\"",
"\"Now I keep notes on weeks like that so one slow day does not throw me.\""
]
},
{
"reaction": "Maya looks down.",
"dialogue": [
"\"I pay the staff before I pay myself.\"",
"\"Some weeks that means I eat cheap and check the till twice.\"",
"\"I have waited for wages before. I do not want them to do that.\""
]
},
{
"reaction": "Maya shrugs.",
"dialogue": [
"\"I started putting repair money aside after the third time something broke at once.\"",
"\"I put a little away every month now, even when it is annoying.\"",
"\"It means a broken fridge does not ruin the whole week.\""
]
},
{
"reaction": "Maya laughs.",
"dialogue": [
"\"A loyalty card looks generous until you count how many free coffees people earn.\"",
"\"People remember every missing stamp.\"",
"\"I keep it because the regulars like it and it brings them back.\""
]
}
]
},
{
"action": "talk_computers",
"success": [
"\"So it would back up the orders without me doing anything? That would help.\"",
"\"I understood that part. The old tablet isn't syncing with the printer.\"",
"\"Show me once and let me write it down. I won't remember the menu names.\"",
"\"If it saves the stock list when the screen freezes, I'm interested.\""
],
"failure": [
"\"You've lost me. What am I supposed to press?\"",
"\"I don't need the whole system explained. I need the printer to work.\"",
"\"That sounds like more setup than the problem deserves.\"",
"\"Can we do this one step at a time?\""
],
"storyPool": [
{
"reaction": "Maya frowns.",
"dialogue": [
"\"The cafe printer stopped working during a Saturday rush.\"",
"\"I wrote every order on napkins for two hours.\"",
"\"At the end, someone saw that it was unplugged. Nobody said much after that.\""
]
},
{
"reaction": "Maya smiles.",
"dialogue": [
"\"Our old tablet updated itself and forgot how to talk to the card reader.\"",
"\"I spent twenty minutes blaming the Wi-Fi.\"",
"\"A technician pressed one thing in the settings and it worked again.\""
]
},
{
"reaction": "Maya laughs.",
"dialogue": [
"\"I made a stock spreadsheet once and felt very grown up about it.\"",
"\"Then I typed the same oat-milk order in two different columns.\"",
"\"For a week I thought the cafe was losing far more money than it was.\""
]
},
{
"reaction": "Maya sighs.",
"dialogue": [
"\"A customer offered to fix the music system because the playlist kept skipping.\"",
"\"He clicked through settings for ten minutes and said it was probably the speakers.\"",
"\"The speakers were unplugged.\""
]
},
{
"reaction": "Maya lifts one shoulder.",
"dialogue": [
"\"A technician once tried to show me every setting on the new till.\"",
"\"I stopped him and asked him to show me how to save an order, print it and take payment.\"",
"\"I wrote those three things beside the screen and learned the rest when I needed it.\""
]
}
]
}
]
}
END_DIALOGUE_DATA %//% DIALOGUE_DATA
{
"girlId": "g1",
"girl": "Zoe Bellamy",
"readyVariable": "dialogue002ready",
"notes": [],
"heatInterruptions": {
"success": [
"\"Give me a second. What did you ask?\"",
"\"Keep it short. I am trying not to get distracted.\""
],
"failure": [
"\"Not now. I cannot think about that.\"",
"\"Ask me later. This is a terrible time.\""
],
"successHot": [
"\"One question. Then stop talking for a minute.\"",
"\"Quickly. I am having trouble concentrating.\""
],
"failureHot": [
"\"No. Not while you are doing that.\"",
"\"Stop talking for a second. I lost track of what you were saying.\""
]
},
"responses": [
{
"action": "talk_computers",
"success": [
"\"Yes. Testing the cable first would tell us whether the fault is in the screen or the computer.\"",
"\"That is worth checking. The fan only starts making noise after the machine warms up.\"",
"\"Trying one change at a time is slower, but then we know which one fixed it.\"",
"\"That would narrow it down. If the error follows the drive, the rest of the machine is probably fine.\""
],
"failure": [
"\"That is the symptom. We still need to find what is causing it.\"",
"\"Do not replace two parts at once. If it works afterward, we will not know which one was faulty.\"",
"\"I need something we can test. Saying the machine feels slow does not narrow it down.\"",
"\"You skipped the test and opened the case. Put the screws somewhere safe before we continue.\""
],
"storyPool": [
{
"reaction": "Zoe becomes more animated without raising her voice.",
"dialogue": [
"\"A student brought in a laptop that shut down every twenty minutes.\"",
"\"He had replaced the charger, battery and operating system.\"",
"\"It was full of dust. I cleaned one fan and it worked again.\""
]
},
{
"reaction": "She looks down for a second.",
"dialogue": [
"\"The old library printer kept leaving a grey stripe down every page.\"",
"\"People blamed the paper for weeks.\"",
"\"It was a cracked roller, which is less exciting but much easier to replace.\""
]
},
{
"reaction": "Zoe exhales through her nose.",
"dialogue": [
"\"Someone once gave me a computer with forty-three browser tabs open.\"",
"\"One was a draft of their thesis. None of it had been saved.\"",
"\"I saved the thesis before I closed anything.\""
]
},
{
"reaction": "She nods once.",
"dialogue": [
"\"A laptop once shut down only when its owner exported video.\"",
"\"I ran the same export and watched the temperature climb until it switched off.\"",
"\"The fan was failing under load, which was much easier to find once I could make the problem repeat.\""
]
},
{
"reaction": "Zoe smiles.",
"dialogue": [
"\"A patron said their keyboard was typing by itself.\"",
"\"There was a library cat asleep on the number pad.\"",
"\"I moved the cat and the keyboard worked again.\""
]
},
{
"reaction": "Zoe nods.",
"dialogue": [
"\"I fixed a keyboard that only missed letters when the laptop was cold.\"",
"\"The cable inside had been bent against the case.\"",
"\"Once I moved it, the problem stopped.\""
]
},
{
"reaction": "Zoe looks down.",
"dialogue": [
"\"A library PC kept showing the same printing error every morning.\"",
"\"Everyone had been restarting it for weeks.\"",
"\"There was one stuck print job. Deleting it solved the problem.\""
]
},
{
"reaction": "Zoe smiles.",
"dialogue": [
"\"A patron thought the scanner had stopped because the screen went dark.\"",
"\"It had gone to sleep.\"",
"\"I showed her the button, and she wrote it on the back of her library card.\""
]
},
{
"reaction": "Zoe nods.",
"dialogue": [
"\"People send files with names like newest, final, and actual final.\"",
"\"I add the date before I save anything for them.\"",
"\"Otherwise I cannot tell what changed.\""
]
},
{
"reaction": "Zoe looks at her hands.",
"dialogue": [
"\"Iris brought me a laptop with blue paint on the keys.\"",
"\"It would only start if she bent the charger cable just right.\"",
"\"The plug had split, and she needed the laptop for a deadline the next morning.\""
]
},
{
"reaction": "Zoe shifts in her chair.",
"dialogue": [
"\"Mina lets me use a back table at the library when I need space for a repair.\"",
"\"One time a student left a paperclip inside a keyboard.\"",
"\"It took longer to find the screw than the paperclip.\""
]
},
{
"reaction": "Zoe gives a small nod.",
"dialogue": [
"\"Elena sent me a spreadsheet that would not import into the analysis software she uses.\"",
"\"Half the dates were written three different ways in the same column.\"",
"\"I cleaned the file format. She did the actual analysis.\""
]
},
{
"reaction": "Zoe brushes her thumb over her sleeve.",
"dialogue": [
"\"Diana sent me a list of streaming parts and asked what could wait.\"",
"\"The answer was the expensive capture card.\"",
"\"She bought it anyway after the old one froze during a live set.\""
]
},
{
"reaction": "Zoe glances away.",
"dialogue": [
"\"Iris came back for her laptop and asked if I could remove the paint too.\"",
"\"I said I fix computers, not murals.\"",
"\"She laughed and cleaned it herself with a cotton swab.\""
]
},
{
"reaction": "Zoe nods once.",
"dialogue": [
"\"Mina has a library computer that froze whenever people printed large PDFs.\"",
"\"The drive was almost full of old scans.\"",
"\"We moved them to storage and it stopped freezing.\""
]
},
{
"reaction": "Zoe looks faintly pleased.",
"dialogue": [
"\"Elena keeps a folder of public datasets she might use later.\"",
"\"She showed me one about city buses and spent ten minutes checking what was missing.\"",
"\"The answer was enough that she did not use it.\""
]
},
{
"reaction": "Zoe looks up.",
"dialogue": [
"\"Diana wanted a camera feed to stop lagging.\"",
"\"The problem was not the camera. It was an update running in the background.\"",
"\"She made me stay until the next stream started clean.\""
]
}
]
},
{
"action": "talk_music",
"success": [
"\"You heard the bass pattern under the melody. It changes one note each time.\"",
"\"Yes. The quiet section makes the next note sound much louder than it really is.\"",
"\"The repetition is setting up the break. It would not work if the earlier bars kept changing.\"",
"\"You caught the timing. The drummer comes in one count earlier on the last chorus.\""
],
"failure": [
"\"Counting the beats is not enough. Listen to which note changes each time.\"",
"\"I do not hear what you mean. Play the section again and point it out.\"",
"\"You are describing the loudest part, but the change starts earlier.\"",
"\"That is too general. Which instrument are you listening to?\""
],
"storyPool": [
{
"reaction": "Zoe's voice softens a little.",
"dialogue": [
"\"A song on one of my repair playlists changes the beat just before the final chorus.\"",
"\"The first few times, I always reached for the next screw a second too early.\"",
"\"Now I know the change is coming, but I still notice it every time.\""
]
},
{
"reaction": "She looks away for a second.",
"dialogue": [
"\"The apartment above mine used to have a bass player.\"",
"\"At first I hated the noise. Then I started knowing when he was practicing badly.\"",
"\"When he moved out, I noticed how quiet the building was.\""
]
},
{
"reaction": "Zoe nods.",
"dialogue": [
"\"I heard a song in the library that used the same three notes quietly before every verse.\"",
"\"When the chorus arrived, those notes were already familiar even though the singer was not louder.\"",
"\"I replayed it later because I wanted to check when they first appeared.\""
]
},
{
"reaction": "She speaks more quickly.",
"dialogue": [
"\"I once spent an hour finding a missing click in a recording.\"",
"\"It was a bracelet touching the desk.\"",
"\"After that, I kept hearing it every time I played the track.\""
]
},
{
"reaction": "Zoe smiles.",
"dialogue": [
"\"I keep a playlist for repairing old computers.\"",
"\"Nothing with lyrics I know. I start following the words and forget the screws.\"",
"\"I did that once and lost a screw for twenty minutes.\""
]
},
{
"reaction": "Zoe smiles.",
"dialogue": [
"\"I found an old CD in a return box once.\"",
"\"It had a name written on it in marker and no track list.\"",
"\"I played it while sorting books and wrote down the songs I liked.\""
]
},
{
"reaction": "Zoe nods.",
"dialogue": [
"\"A friend sends me playlists with notes beside every song.\"",
"\"Usually the note says where she heard it or what she was doing.\"",
"\"I like knowing why she put something there.\""
]
},
{
"reaction": "Zoe looks down.",
"dialogue": [
"\"I repaired a speaker that made a click at the start of every song.\"",
"\"The cable was loose behind the socket.\"",
"\"After I fixed it, I kept waiting for the click anyway.\""
]
},
{
"reaction": "Zoe adjusts her sleeve.",
"dialogue": [
"\"Mina asked if the library speakers could handle a small music group.\"",
"\"They could, after I cleaned the ports.\"",
"\"The children were louder than the speakers anyway.\""
]
},
{
"reaction": "Zoe thinks for a second.",
"dialogue": [
"\"Iris had a playlist on her laptop that kept skipping between tracks.\"",
"\"One file was corrupt, so it was not a mystery.\"",
"\"She said the silence between songs was worse than the wrong song.\""
]
},
{
"reaction": "Zoe nods.",
"dialogue": [
"\"Diana gave me a recording from Sofia's set and asked why it clipped.\"",
"\"The mic level was too high from the first song.\"",
"\"I sent her the setting. She fixed it before the next one.\""
]
},
{
"reaction": "Zoe keeps her voice even.",
"dialogue": [
"\"Elena brought me a table from one of Diana's streams and asked how to make the chart readable.\"",
"\"It had every song request and viewer count from a month of shows.\"",
"\"We removed the duplicates before she compared anything.\""
]
},
{
"reaction": "Zoe looks down.",
"dialogue": [
"\"Mina asked if I could make an old keyboard play through the library speakers.\"",
"\"It needed one adapter and a cable Hana had left behind.\"",
"\"It worked, so Mina kept the adapter in a labelled drawer.\""
]
}
]
},
{
"action": "gaze_chest",
"success": [
"\"I know where you are looking. At least do not pretend otherwise.\"",
"\"Yes, I noticed. Look at my face when I answer you.\""
],
"failure": [
"\"Eyes up. You are staring.\"",
"\"If you want to talk to me, look at my face.\""
]
},
{
"action": "invite_private_movie",
"success": [
"\"A movie at your place? You know that does not sound entirely innocent.\"",
"\"Maybe. I choose the film, and you send me the address before I leave.\""
],
"failure": [
"\"No. I do not know you well enough to come over.\"",
"\"Not yet. I would rather meet somewhere public.\""
]
},
{
"action": "talk_photography",
"success": [
"\"That is a good point. The crop removes the sign that would tell us where the picture was taken.\"",
"\"Yes. The empty space shows how far she is standing from everybody else.\"",
"\"You noticed the open door in the background. I had been looking only at the person.\"",
"\"That makes sense. The empty chair matters because the subject keeps looking toward it.\""
],
"failure": [
"\"Look at the rest of the frame. The person is not the only useful part.\"",
"\"That is the first thing everyone sees. What did you notice after that?\"",
"\"You have described the object, but not why this photograph of it works.\"",
"\"I would not crop the empty side. It shows where the subject is looking.\""
],
"storyPool": [
{
"reaction": "Zoe looks down at the photograph.",
"dialogue": [
"\"I scanned a family photograph from the 1940s for a patron.\"",
"\"The original was creased through every face except one little girl.\"",
"\"He said nobody in the family had noticed that before.\""
]
},
{
"reaction": "Zoe nods.",
"dialogue": [
"\"A patron asked me to crop an archive photograph around the two people in the centre.\"",
"\"The wider version included a shop sign at the edge of the street.\"",
"\"That sign was how we confirmed which town the photograph came from, so I kept both versions.\""
]
},
{
"reaction": "Zoe nods.",
"dialogue": [
"\"The archive scanner made a pencil note look like a grey stain on one old letter.\"",
"\"I checked the page under a lamp and realised somebody had written a date in the margin.\"",
"\"I scanned that section again at a higher resolution so the date would still be readable.\""
]
},
{
"reaction": "She pauses.",
"dialogue": [
"\"I found a photograph in a donated book once.\"",
"\"It was a beach, two adults, and somebody's thumb over half the lens.\"",
"\"I liked it more than the postcard beside it.\""
]
},
{
"reaction": "Zoe tilts her head.",
"dialogue": [
"\"A family donated two versions of the same wedding photograph.\"",
"\"One had been retouched so heavily that a person at the edge was almost gone.\"",
"\"The unedited copy had a reflection across the glass, but it was the one we archived as the main image.\""
]
}
]
},
{
"action": "talk_cooking",
"success": [
"\"I do not know much about cooking, but those instructions are clear enough to follow.\"",
"\"Giving the cooking times in order helps. I would know when to start each part.\"",
"\"I may not care about the recipe, but using one pan instead of three is sensible.\"",
"\"The measurements are specific. I could probably make that without calling somebody.\""
],
"failure": [
"\"I do not know enough about cooking to fix that explanation for you.\"",
"\"You lost me when you stopped giving measurements. How much are you adding?\"",
"\"I am not interested enough in the recipe to guess which step you skipped.\"",
"\"That sounds too improvised for me. I would need the instructions written down.\""
],
"storyPool": [
{
"reaction": "Zoe considers the subject longer than she needs to.",
"dialogue": [
"\"I once followed a recipe that had every step timed to the minute.\"",
"\"It still failed because the pan was too small.\"",
"\"The instructions were not wrong, but they left out the size of the pan.\""
]
},
{
"reaction": "She gives a brief shrug.",
"dialogue": [
"\"The library microwave has one setting that does not boil soup onto the turntable.\"",
"\"Mina showed it to me after I had to clean tomato soup off the inside twice in one week.\"",
"\"I wrote the setting on a label beside the buttons. People still use the wrong one.\""
]
},
{
"reaction": "Zoe frowns.",
"dialogue": [
"\"I tried meal prep because it looked efficient.\"",
"\"By Thursday I had five identical containers and no interest in opening any of them.\"",
"\"I stopped making the same meal five times.\""
]
},
{
"reaction": "She speaks more quickly once she has started.",
"dialogue": [
"\"A roommate used to cook by adding things until the kitchen smelled right.\"",
"\"I kept asking what the ratios were. She kept handing me a spoon.\"",
"\"Her dinners were better than mine.\""
]
},
{
"reaction": "Zoe tilts her head.",
"dialogue": [
"\"I tried a recipe that said to stir the sauce until it changed.\"",
"\"I did not know whether that meant the colour, the smell or the thickness, so I stopped too early.\"",
"\"The second time I watched a video and finally saw what the recipe had left out.\""
]
}
]
},
{
"action": "talk_finance",
"success": [
"\"That table is clear enough. I can see what changes if the cost goes up.\"",
"\"I do not enjoy finance, but I can follow the reasoning when you use actual figures.\"",
"\"That makes sense. You have shown the cost, the likely return and what happens if it fails.\"",
"\"The numbers are useful when they lead to a decision. This version does.\""
],
"failure": [
"\"You have put a number on the guess, but you have not shown where it came from.\"",
"\"I am not interested enough in finance to pretend I understood that. Start with the cost.\"",
"\"You mentioned the probability, but not how it was calculated.\"",
"\"If that number does not change the decision, I do not know why it is in the report.\""
],
"storyPool": [
{
"reaction": "Zoe speaks with careful interest.",
"dialogue": [
"\"The library had money for new monitors one year.\"",
"\"Everyone wanted the brightest model. I made a list of what actually failed on the old ones.\"",
"\"We bought fewer screens and replaced the machines that needed them.\""
]
},
{
"reaction": "She shakes her head.",
"dialogue": [
"\"A music app kept charging me for six months after a free trial ended.\"",
"\"I only noticed when I searched my statement for a different payment.\"",
"\"I cancelled it that day and started checking recurring charges once a month.\""
]
},
{
"reaction": "Zoe pauses before continuing.",
"dialogue": [
"\"I wanted a new graphics card and had almost saved enough for it.\"",
"\"Then the power supply failed in the computer I used for repairs.\"",
"\"I replaced it from the same savings and delayed the upgrade for another month.\""
]
},
{
"reaction": "She nods at the practical part of it.",
"dialogue": [
"\"The library set aside money for repairs after two scanners failed in the same winter.\"",
"\"The next year a printer needed a new drum, and Mina did not have to cut the book budget to pay for it.\"",
"\"It was the first time a broken machine had not caused a week of arguments.\""
]
},
{
"reaction": "Zoe looks briefly uncomfortable.",
"dialogue": [
"\"I used to buy cheap cables because they were cheap.\"",
"\"Then I replaced the same cable three times in a month.\"",
"\"Now I check the basic details before I buy one.\""
]
}
]
},
{
"action": "talk_art",
"success": [
"\"I usually do not know what to say about art, but I can follow that interpretation.\"",
"\"That helps. I can see how the two figures lead your eye toward the centre.\"",
"\"Breaking down the shape gives me somewhere specific to look.\"",
"\"I would not have noticed it alone, but I can see the repeated line now.\""
],
"failure": [
"\"I already know very little about art, and that explanation did not help.\"",
"\"Can you say that more simply? I still do not know which part you mean.\"",
"\"That is too vague for me to follow. Point to the detail you are talking about.\"",
"\"I do not understand that description. Tell me what you actually saw.\""
],
"storyPool": [
{
"reaction": "Zoe speaks with more interest than she expected.",
"dialogue": [
"\"There is a book in the archive with handwritten notes in every margin.\"",
"\"The notes are not important, but the handwriting changes halfway through.\"",
"\"I keep going back to that part.\""
]
},
{
"reaction": "She gives a small shrug.",
"dialogue": [
"\"I helped Mina replace a library poster once because the event time was almost touching the title.\"",
"\"After moving it down, I started noticing the same cramped spacing on every sign in the building.\"",
"\"Mina told me to stop looking before I volunteered to redo all of them.\""
]
},
{
"reaction": "Zoe looks thoughtful.",
"dialogue": [
"\"A student left a collage in the printer tray by mistake.\"",
"\"It was mostly ticket stubs and black paper.\"",
"\"I returned it, then kept thinking about it later.\""
]
},
{
"reaction": "She speaks matter-of-factly.",
"dialogue": [
"\"The library had an exhibition poster with six photographs all the same size.\"",
"\"Nobody knew which one was meant to be the main image, and the event title was buried at the bottom.\"",
"\"We enlarged one photograph and moved the title above it. The poster was much easier to read.\""
]
},
{
"reaction": "Zoe lets out a short breath.",
"dialogue": [
"\"The library got a display of old book covers once.\"",
"\"Some were ugly in a very expensive way.\"",
"\"They were clearly made by somebody who had strong opinions.\""
]
}
]
},
{
"action": "talk_sports",
"success": [
"\"I still do not care about the score, but the mechanics are easier to understand when you show me.\"",
"\"The way the foot turns changes the whole movement. That part is interesting.\"",
"\"Moving efficiently makes more sense to me than talking about who won.\"",
"\"I can follow the explanation when it stays on the movement itself.\""
],
"failure": [
"\"I do not know enough about sports to have a useful opinion on that.\"",
"\"I still do not understand why that part matters. Show me the movement again.\"",
"\"You lost me when the explanation became entirely about who won.\"",
"\"There are too many rules in that example for me to follow it.\""
],
"storyPool": [
{
"reaction": "Zoe folds her arms.",
"dialogue": [
"\"I joined a climbing gym once because the routes looked like a puzzle.\"",
"\"Then I discovered the puzzle required forearms.\"",
"\"I climbed two walls and bought very expensive chalk.\""
]
},
{
"reaction": "Zoe nods.",
"dialogue": [
"\"My back started hurting after a week of moving returned books onto the lower shelves.\"",
"\"A coworker showed me how to kneel instead of bending over for every row.\"",
"\"It felt slower at first, but the pain stopped by the end of the week.\""
]
},
{
"reaction": "Zoe pauses.",
"dialogue": [
"\"A friend tracks every run with three different apps.\"",
"\"One day they disagreed by forty metres and she nearly restarted the run.\"",
"\"That is when I stopped asking her about running.\""
]
},
{
"reaction": "She looks mildly amused.",
"dialogue": [
"\"I tried a beginner yoga video at home.\"",
"\"The instructor kept saying the pose should feel natural.\"",
"\"Nothing about that position felt natural to me.\""
]
},
{
"reaction": "Zoe speaks plainly.",
"dialogue": [
"\"I spent an afternoon trying to fix a printer error and kept testing the same two settings.\"",
"\"I walked around the block, came back and noticed the wrong printer was selected.\"",
"\"Now I take a short walk when I catch myself repeating the same test.\""
]
}
]
},
{
"action": "talk_massage",
"success": [
"\"So you find the sore spot and work around it before you press directly on it? That makes sense.\"",
"\"That sounds careful enough to try. I would want you to start lightly.\"",
"\"Checking how the person reacts makes sense. The same pressure will not work for everyone.\"",
"\"I understand now. You test the nearby muscles first instead of assuming the painful spot is the cause.\""
],
"failure": [
"\"That sounds like an excuse to touch someone, not a clear massage technique.\"",
"\"You are being too vague. Which muscle are you talking about?\"",
"\"You sound certain, but you have not explained where the pressure would go.\"",
"\"Telling somebody to relax does not help if you start too hard.\""
],
"storyPool": [
{
"reaction": "Zoe reaches toward the side of her neck.",
"dialogue": [
"\"I get a knot here after too long at the repair bench.\"",
"\"Someone once tried to fix it by pressing harder every time I flinched.\"",
"\"That made it worse.\""
]
},
{
"reaction": "She answers after a pause.",
"dialogue": [
"\"A physiotherapist showed me a stretch for my wrists.\"",
"\"It looked too small to matter.\"",
"\"After a week, I stopped dropping screwdrivers. I kept doing it.\""
]
},
{
"reaction": "Zoe frowns.",
"dialogue": [
"\"I went to a massage place where the therapist spent ten minutes explaining the treatment before touching my shoulder.\"",
"\"Then she pressed the sore spot without asking how it felt.\"",
"\"I would have preferred less introduction and one question after she started.\""
]
},
{
"reaction": "She nods once.",
"dialogue": [
"\"A physiotherapist put a warm towel around my wrist before working on it once.\"",
"\"The first stretch had hurt during the previous appointment, but it was much easier after the towel.\"",
"\"I started doing the same thing at home before the exercises.\""
]
},
{
"reaction": "Zoe looks embarrassed.",
"dialogue": [
"\"I bought a cheap massage pillow during exams.\"",
"\"It made a loud clicking sound and pushed my shoulder the wrong way.\"",
"\"I took it apart before I threw it away.\""
]
}
]
}
]
}
END_DIALOGUE_DATA %//% DIALOGUE_DATA
{
"girlId": "g2",
"girl": "Iris Moon",
"readyVariable": "dialogue003ready",
"notes": [],
"responses": [
{
"action": "talk_art",
"success": [
"\"Yes, I was looking at the same part. I just could not explain why it mattered.\"",
"\"I like that reading. The repeated shape makes more sense to me now.\"",
"\"You noticed the unfinished section too. I was wondering whether the artist meant to leave it that way.\"",
"\"I had not considered the background separately. I want to look at it again.\""
],
"failure": [
"\"Maybe. I think I see it differently. Which part gave you that idea?\"",
"\"I might be wrong, but that explanation feels too simple for this piece.\"",
"\"Sorry, I was looking at the smaller figure near the edge instead.\"",
"\"I understand what you mean. I just think the background is more interesting than the subject here.\""
],
"storyPool": [
{
"reaction": "Iris brightens, then catches herself.",
"dialogue": [
"\"I painted over a section of a wall three times because the blue looked wrong.\"",
"\"Nobody else could see the difference.\"",
"\"The third blue looked right beside the yellow.\""
]
},
{
"reaction": "She speaks with both hands for a second, then puts them still.",
"dialogue": [
"\"There is a sketch in my old notebook that I hated for years.\"",
"\"It is crooked and the face is too wide.\"",
"\"Now I like it because I can see what I was trying to do.\""
]
},
{
"reaction": "Iris lowers her voice.",
"dialogue": [
"\"A woman walked past one of our murals every morning without looking at it.\"",
"\"One day she stopped and touched the painted flowers with one finger.\"",
"\"I remembered that more than the opening night.\""
]
},
{
"reaction": "She gives a small laugh.",
"dialogue": [
"\"I forgot to erase the pencil grid before painting a shop sign once.\"",
"\"The owner liked seeing how I had laid out the letters and asked me not to cover all of it.\"",
"\"I left a few of the lighter lines around the border.\""
]
},
{
"reaction": "Iris pauses, searching for the words.",
"dialogue": [
"\"I spent an afternoon smoothing the face in a portrait until it stopped looking like the model.\"",
"\"My teacher showed me the first photograph I had taken of the work, before all the corrections.\"",
"\"I painted some of the rough lines back in and left it alone after that.\""
]
},
{
"reaction": "Iris smiles.",
"dialogue": [
"\"I painted a sign for a small shop once.\"",
"\"One of the letters came out wrong, so I painted over it twice.\"",
"\"On the third try, I stopped touching it and it looked fine.\""
]
},
{
"reaction": "Iris nods.",
"dialogue": [
"\"We had leftover paint after a wall job.\"",
"\"Someone used it on old wooden boards instead of throwing it away.\"",
"\"People took pictures of those boards all week.\""
]
},
{
"reaction": "Iris laughs.",
"dialogue": [
"\"A teacher told me to use less colour in one painting.\"",
"\"I tried, but then I kept adding small bits back in.\"",
"\"She said it was better than the first version, so I stopped arguing.\""
]
},
{
"reaction": "Iris looks down.",
"dialogue": [
"\"I found a sketch from my first year in a drawer.\"",
"\"The hands were too big and the shoes were uneven.\"",
"\"I put it back in the sketchbook instead of throwing it out.\""
]
},
{
"reaction": "Iris tucks her hair behind one ear.",
"dialogue": [
"\"Valerie looked through my portfolio after a gallery opening.\"",
"\"She crossed out two pieces I had been carrying around for years.\"",
"\"Then she told me which three to print properly.\""
]
},
{
"reaction": "Iris looks toward the floor.",
"dialogue": [
"\"Amara told me about a legal wall behind a delivery yard.\"",
"\"The owner only asked that I not cover the loading sign.\"",
"\"I painted around it. It looked better than hiding it.\""
]
},
{
"reaction": "Iris smiles a little.",
"dialogue": [
"\"Keira photographed a mural before the rain started.\"",
"\"I was still filling a corner when she took the picture.\"",
"\"The photo made it look finished. I had to finish it after that.\""
]
},
{
"reaction": "Iris lifts one shoulder.",
"dialogue": [
"\"Sofia sang at a mural opening once.\"",
"\"The speaker crackled, people kept walking past, and she kept going.\"",
"\"By the third song, nobody was looking at their phone.\""
]
},
{
"reaction": "Iris picks at a paint mark on her thumb.",
"dialogue": [
"\"Zoe fixed my laptop before I had to send a draft.\"",
"\"I had been saving files under names like final_final2.\"",
"\"She made a backup folder and told me to use it.\""
]
},
{
"reaction": "Iris exhales.",
"dialogue": [
"\"Amara waited with me while I checked whether the wall was still free.\"",
"\"Someone had put a poster over the sketch.\"",
"\"We peeled it off and I painted the outline again.\""
]
},
{
"reaction": "Iris nods.",
"dialogue": [
"\"Valerie asked why one drawing was so small.\"",
"\"I told her I did not have room for a larger sheet.\"",
"\"She pointed out a cheap print shop that cut paper to size.\""
]
},
{
"reaction": "Iris looks embarrassed.",
"dialogue": [
"\"Keira caught a picture of my hands before I cleaned the paint off.\"",
"\"I hated it at first.\"",
"\"Then I used it for the portfolio page about how I work.\""
]
}
]
},
{
"action": "talk_photography",
"success": [
"\"Yes. The side light shows the paint on her sleeve. I like that you noticed it.\"",
"\"You noticed the hands too. They look much less posed than her face.\"",
"\"I think you are right about the crop. Keeping the chair makes the room look less staged.\"",
"\"I prefer the photograph taken before she looked at the camera. Her expression is more natural.\""
],
"failure": [
"\"Maybe. I was looking at the smaller details near the edge instead.\"",
"\"I understand what you mean, but I do not see it in this photograph.\"",
"\"It is a nice picture, but I do not think the pose looks natural. Sorry.\"",
"\"I might be wrong, but the background seems more important than the person here.\""
],
"storyPool": [
{
"reaction": "Iris smiles a little.",
"dialogue": [
"\"I took a picture of a friend while she was tying her shoe.\"",
"\"She hated it because her face was scrunched up.\"",
"\"I liked it because she looked like herself.\""
]
},
{
"reaction": "She pauses to think.",
"dialogue": [
"\"I took portraits of a classmate who kept changing her smile every time I lifted the camera.\"",
"\"Her hands stayed folded the same way in every picture, except in one where she started laughing.\"",
"\"That was the photograph I chose, even though her face was slightly blurred.\""
]
},
{
"reaction": "Iris lets out a breath.",
"dialogue": [
"\"A rainstorm ruined a photo assignment I had planned for days.\"",
"\"Then the pavement reflected all the shop lights.\"",
"\"I took better pictures in the rain than I had planned to.\""
]
},
{
"reaction": "She speaks carefully.",
"dialogue": [
"\"I cropped a photograph for class until the only thing left was the person in the centre.\"",
"\"My teacher asked why I had removed the coat and wet umbrella near the door.\"",
"\"I restored the wider frame, and the picture finally looked like it had been taken on a rainy day.\""
]
},
{
"reaction": "Iris glances away.",
"dialogue": [
"\"I took pictures of an empty bus stop for a project.\"",
"\"My teacher asked where the people were.\"",
"\"I said they had just left. That was not true, but my teacher liked the answer.\""
]
},
{
"reaction": "Iris nods.",
"dialogue": [
"\"I took photos of a mural after it was finished.\"",
"\"At night, the streetlights changed all the colours.\"",
"\"One picture had a cyclist going past, and that was the one I kept.\""
]
},
{
"reaction": "Iris smiles.",
"dialogue": [
"\"I helped a friend take photos for a class project.\"",
"\"She kept blinking in the first few, so we took too many.\"",
"\"The seventeenth one was good enough to use.\""
]
},
{
"reaction": "Iris laughs.",
"dialogue": [
"\"A teacher told me to take more pictures before choosing one.\"",
"\"I thought that was wasteful at first.\"",
"\"Then I saw how different the same place looked ten minutes later.\""
]
},
{
"reaction": "Iris glances aside.",
"dialogue": [
"\"Keira showed me how she checks a wall through the camera before setting up.\"",
"\"The photo caught a drainpipe I had stopped seeing.\"",
"\"I moved the design instead of pretending the pipe was not there.\""
]
},
{
"reaction": "Iris speaks a little faster.",
"dialogue": [
"\"Valerie asked Keira to take pictures at an opening.\"",
"\"I watched her keep people out of the background without telling them to move.\"",
"\"I would apologise first and lose the shot.\""
]
},
{
"reaction": "Iris brushes paint from her fingers.",
"dialogue": [
"\"Amara took me down a side street because the light hit the wall after lunch.\"",
"\"I took too many pictures of cracked paint.\"",
"\"One became the background for a poster.\""
]
},
{
"reaction": "Iris smiles.",
"dialogue": [
"\"Sofia let Keira take pictures after a set at the mural opening.\"",
"\"I was meant to help pack cables, but I kept watching the lights.\"",
"\"The shots came out better than the poster did.\""
]
},
{
"reaction": "Iris gives a quick nod.",
"dialogue": [
"\"Zoe repaired my laptop just before I had to sort reference photos.\"",
"\"I had thousands of files in one folder.\"",
"\"She made me add dates before she let me leave.\""
]
}
]
},
{
"action": "talk_cooking",
"success": [
"\"That sounds comforting. I would rather eat that than something arranged for a photograph.\"",
"\"Oh, that makes sense. The vegetables change colour when they have cooked long enough.\"",
"\"I like that. It is simple, but you still explained the important steps.\"",
"\"You made the recipe sound manageable. I might actually try it.\""
],
"failure": [
"\"I am not very useful with cooking, and I got lost after the first few steps.\"",
"\"Maybe. I mostly notice whether something looks good enough to eat.\"",
"\"That is a lot of steps. I would forget one unless I kept the recipe beside me.\"",
"\"I am not sure what you mean by cooking it confidently. How long should it stay in the pan?\""
],
"storyPool": [
{
"reaction": "Iris laughs quietly at herself.",
"dialogue": [
"\"I made toast once and kept staring at it because the brown edge was really pretty.\"",
"\"Then I forgot it was toast and let it burn.\"",
"\"It was less pretty after that.\""
]
},
{
"reaction": "She starts with a small apology.",
"dialogue": [
"\"I ordered a vegetable soup because the photograph on the menu was full of bright colours.\"",
"\"The real bowl was mostly brown, although it tasted much better than it looked.\"",
"\"I ate all of it and stopped choosing soup from the photograph after that.\""
]
},
{
"reaction": "Iris thinks about it for a second.",
"dialogue": [
"\"The mural crew eats takeout on paint-splattered paper.\"",
"\"Everything tastes better when you are tired and somebody else remembered chopsticks.\"",
"\"By then, we are usually too tired to care what it is.\""
]
},
{
"reaction": "She speaks more easily once she has begun.",
"dialogue": [
"\"My mother makes a potato dish that always looks plain in the pan.\"",
"\"Then she puts it on a blue plate and suddenly it looks important.\"",
"\"It always looks better once it is on the table.\""
]
},
{
"reaction": "Iris tucks a strand of hair behind her ear.",
"dialogue": [
"\"I tried making pasta from a video once.\"",
"\"The dough stuck to everything except itself.\"",
"\"I ate cereal and kept the flour on my sleeve all evening.\""
]
}
]
},
{
"action": "talk_music",
"success": [
"\"I like that section. The quiet guitar behind the vocal is easier to hear the second time.\"",
"\"Yes, the pause mattered. I thought I was the only one waiting for the next note.\"",
"\"Comparing the chorus with the first verse helped me hear what changed.\"",
"\"I understand what you mean now. The singer leaves more space in the last verse.\""
],
"failure": [
"\"Maybe. I mostly know whether a song changes the feeling around me.\"",
"\"I think I lost the thread a little.\"",
"\"That sounds right in a technical way. I just did not feel it that way.\"",
"\"I might not be good enough at music to follow you there.\""
],
"storyPool": [
{
"reaction": "Iris looks pleased to have an answer ready.",
"dialogue": [
"\"I used the same playlist through a whole mural job once.\"",
"\"One song had a quiet middle section, and I started using that minute to climb down and look at the wall from across the yard.\"",
"\"It stopped me adding more paint to sections that were already finished.\""
]
},
{
"reaction": "She laughs softly.",
"dialogue": [
"\"I heard a song through someone's apartment wall for months.\"",
"\"I never knew the name, only the bit where the singer held one note too long.\"",
"\"When they moved out, I noticed it was gone.\""
]
},
{
"reaction": "Iris looks down, then back up.",
"dialogue": [
"\"A teacher played instrumental music while we painted quick studies once.\"",
"\"I used rust-coloured paint for the slow track and blue for the faster one without planning it.\"",
"\"When we compared the paintings, mine were the only ones divided that neatly by colour.\""
]
},
{
"reaction": "Iris nods.",
"dialogue": [
"\"Sofia sang one last song after a mural opening when her voice was already tired.\"",
"\"She missed one high note and laughed before finishing the line.\"",
"\"That was the song people asked her about afterward.\""
]
},
{
"reaction": "Iris nods once.",
"dialogue": [
"\"A friend made me a playlist for a mural job.\"",
"\"It had too many loud songs for the first hour.\"",
"\"By the end I knew every word and did not want to admit it.\""
]
}
]
},
{
"action": "talk_sports",
"success": [
"\"That makes the movement sound less difficult than I expected.\"",
"\"I can understand it when you explain where the weight should be.\"",
"\"The pose is similar to one I have drawn, although holding it would be much harder.\"",
"\"Starting slowly sounds sensible. I would need time to learn the balance.\""
],
"failure": [
"\"I am not very sporty. I mostly understand falling badly.\"",
"\"That sounds exhausting, but maybe in a useful way.\"",
"\"I think I missed why people enjoy that part.\"",
"\"I believe you. I just feel like my knees would object.\""
],
"storyPool": [
{
"reaction": "Iris gives a shy little smile.",
"dialogue": [
"\"I used to think runners looked very graceful from far away.\"",
"\"Then I tried it and learned that I make the same face as a frightened dog.\"",
"\"I still like watching other people run.\""
]
},
{
"reaction": "She nods slowly.",
"dialogue": [
"\"Mural work is more physical than people think.\"",
"\"You climb, reach, crouch, climb down, then realize you forgot the colour you needed.\"",
"\"By the end, my legs are sore.\""
]
},
{
"reaction": "Iris looks pleased by the comparison.",
"dialogue": [
"\"A model leaned too far onto one leg during a drawing class and had to stop the pose early.\"",
"\"The teacher showed us how the shoulder and hip had shifted to keep her upright.\"",
"\"I started watching for the same thing when people move, not only when they stand still.\""
]
},
{
"reaction": "She shrugs.",
"dialogue": [
"\"A friend took me swimming last summer.\"",
"\"I spent most of the time adjusting my goggles and pretending that was part of the exercise.\"",
"\"The water was nice, though.\""
]
},
{
"reaction": "Iris speaks softly.",
"dialogue": [
"\"My back locked up after I spent a day painting the bottom section of a wall.\"",
"\"A classmate showed me two stretches and waited while I copied her.\"",
"\"I wrote them on a scrap of masking tape and stuck it inside my paint box.\""
]
}
]
},
{
"action": "talk_computers",
"success": [
"\"Oh, that makes sense. I can check that setting without changing the rest.\"",
"\"If it keeps the reference images in order, I can see why it would help.\"",
"\"That sounds less difficult when you explain one step at a time.\"",
"\"I think I followed that. Let me try it once before I forget.\""
],
"failure": [
"\"Sorry, I stopped following after the second menu. Can you go back?\"",
"\"I believe you. I just cannot picture which part of the computer you mean.\"",
"\"I would be worried about clicking the wrong option. Show me where it is first.\"",
"\"I think I need you to draw the steps or write them down for me.\""
],
"storyPool": [
{
"reaction": "Iris looks relieved that the subject has a practical answer.",
"dialogue": [
"\"I lost a whole sketch file once because I kept saving it to the desktop.\"",
"\"Then I cleaned the desktop because it looked messy.\"",
"\"Now I back things up even when I do not understand where they go.\""
]
},
{
"reaction": "Iris laughs.",
"dialogue": [
"\"A tablet drawing app asked if I wanted to merge the layers.\"",
"\"I thought that sounded helpful.\"",
"\"It was not helpful when I needed to move one cloud three hours later.\""
]
},
{
"reaction": "Iris speaks more quickly.",
"dialogue": [
"\"I have a folder called 'final final final' on my laptop.\"",
"\"There are fourteen versions inside it.\"",
"\"I keep meaning to organize it, but I always need a different version first.\""
]
},
{
"reaction": "She gives a small shrug.",
"dialogue": [
"\"I tried changing the brush settings in a drawing program and opened a panel with more options than I could count.\"",
"\"I moved one slider, disliked the result, and could not remember where it had started.\"",
"\"Zoe showed me the reset button and made me save a copy before trying again.\""
]
},
{
"reaction": "Iris glances down.",
"dialogue": [
"\"A classmate showed me how to scan sketches without losing the pencil texture.\"",
"\"I had been photographing them in bad light for a year.\"",
"\"I felt stupid for about ten minutes, then very grateful.\""
]
}
]
},
{
"action": "talk_finance",
"success": [
"\"That sounds responsible. I should probably keep the rent money separate too.\"",
"\"Breaking it into a weekly amount makes it feel much easier to manage.\"",
"\"That makes sense. A small plan for this month is less frightening than planning the whole year.\"",
"\"I should understand that better than I do. Can you show me the calculation again?\""
],
"failure": [
"\"Money talk makes me nervous, sorry.\"",
"\"I got lost when you moved from the monthly cost to percentages.\"",
"\"That sounds important, but I do not understand it well enough to answer.\"",
"\"I am not saying it is wrong. I would need somebody to go through the numbers with me.\""
],
"storyPool": [
{
"reaction": "Iris goes quiet before answering.",
"dialogue": [
"\"Art supplies are expensive in a sneaky way.\"",
"\"It is never one big purchase. It is one brush, then paper, then tape, then suddenly no money.\"",
"\"I write down what I need before I go into the shop now.\""
]
},
{
"reaction": "She nods at the practical part.",
"dialogue": [
"\"I got paid late for a mural once.\"",
"\"I kept telling myself it was probably fine because I did not want to sound difficult.\"",
"\"It was not fine. I asked the next day.\""
]
},
{
"reaction": "Iris looks a little embarrassed.",
"dialogue": [
"\"I used to buy cheap paint because it was all I could afford.\"",
"\"Then I spent twice as long fixing the colour every time.\"",
"\"Now I buy fewer colours, but better ones.\""
]
},
{
"reaction": "She speaks in a rush.",
"dialogue": [
"\"My friend keeps an envelope for rent and an envelope for food.\"",
"\"I thought it was old-fashioned until I stopped accidentally spending both.\"",
"\"Now I have envelopes too.\""
]
},
{
"reaction": "Iris smiles.",
"dialogue": [
"\"The first print I sold paid for a week of groceries.\"",
"\"I kept the receipt because it felt impossible that a drawing did that.\"",
"\"It is still in my sketchbook.\""
]
}
]
},
{
"action": "talk_massage",
"success": [
"\"That sounds nice. Sorry, I answered before you had finished explaining it.\"",
"\"Starting gently would help. I tense up if someone presses too hard straight away.\"",
"\"Warmth and light pressure would probably work on me quite quickly.\"",
"\"You made it sound careful. I would be comfortable trying it that way.\""
],
"failure": [
"\"Maybe. I get nervous if touch sounds too sudden.\"",
"\"I would need you to slow down and check how the pressure feels.\"",
"\"That might work for someone braver than me.\"",
"\"I am not sure. I mostly like the gentle part.\""
],
"storyPool": [
{
"reaction": "Iris reaches toward her shoulder.",
"dialogue": [
"\"After a day painting high sections, this part gets sore first.\"",
"\"I always notice it when I am trying to wash paint out of my hair.\"",
"\"Warm water helps more than I expect it to.\""
]
},
{
"reaction": "Iris looks embarrassed.",
"dialogue": [
"\"A friend rubbed my hands after I spent all day carrying panels.\"",
"\"I kept saying I was fine because I did not want to be a problem.\"",
"\"After a few minutes, my fingers stopped aching.\""
]
},
{
"reaction": "Iris shakes her head gently.",
"dialogue": [
"\"A friend pressed both thumbs into my shoulders before asking whether I was sore there.\"",
"\"I jumped and stayed tense for the rest of the massage.\"",
"\"The next time she started with her palms and asked first. That was much easier.\""
]
},
{
"reaction": "She speaks in a quieter voice.",
"dialogue": [
"\"There is a place near campus that smells like eucalyptus all the way outside.\"",
"\"I have never gone in because it looks expensive.\"",
"\"I still walk past it sometimes.\""
]
},
{
"reaction": "Iris gives a small smile.",
"dialogue": [
"\"I bought a hand cream that was supposed to help tired muscles.\"",
"\"It mostly smelled like oranges and made my hands slippery.\"",
"\"I kept it anyway.\""
]
}
]
}
]
}
END_DIALOGUE_DATA %//% DIALOGUE_DATA
{
"girlId": "g3",
"girl": "Tessa Grant",
"readyVariable": "dialogue004ready",
"notes": [],
"heatInterruptions": {
"success": [
"\"One answer, then let me get back to this.\"",
"\"Make it quick. I was enjoying that.\""
],
"failure": [
"\"Not now. Ask me later.\"",
"\"That is a terrible question to ask in the middle of this.\""
],
"successHot": [
"\"One question. Then stop distracting me.\"",
"\"Quickly. I am not pausing for a full conversation.\""
],
"failureHot": [
"\"No. You chose a terrible second.\"",
"\"Stop. I was enjoying that before you changed the subject.\""
]
},
"responses": [
{
"action": "talk_finance",
"success": [
"\"Yes, that is the part people usually forget. A good month still has to cover the bad one.\"",
"\"That makes sense. You checked what happens if the estimate is wrong.\"",
"\"Right. Having money on paper does not help if the bill is due before you get paid.\"",
"\"Borrowing can help, but only if the repayments still fit when business slows down.\""
],
"failure": [
"\"I do not think that works. You are counting the best outcome and ignoring the risk.\"",
"\"You are assuming confidence changes what the loan costs. It does not.\"",
"\"There is a lot of activity in that plan, but I cannot see how it makes money.\"",
"\"Before you talk about profit, tell me what happens if the price drops.\""
],
"storyPool": [
{
"reaction": "Tessa nods.",
"dialogue": [
"\"A client once wanted a forecast that only went up.\"",
"\"I showed him the version with the bad quarter included.\"",
"\"He hated it until the bad quarter happened.\""
]
},
{
"reaction": "She speaks without dressing it up.",
"dialogue": [
"\"A colleague with a better salary than mine once asked to borrow money before payday.\"",
"\"He had three subscriptions he had forgotten about and a car payment he could barely cover.\"",
"\"We went through the bank statement together during lunch.\"",
"\"He cancelled the subscriptions first and dealt with the car a month later.\""
]
},
{
"reaction": "Tessa looks down briefly.",
"dialogue": [
"\"My first bonus felt enormous.\"",
"\"I spent half of it on things I did not even want because I thought that was what successful people did.\"",
"\"The next year I put most of it aside and bought one thing I had wanted for months.\""
]
},
{
"reaction": "She folds one hand over the other.",
"dialogue": [
"\"A client called my forecast pessimistic because I included a slow quarter.\"",
"\"I showed him how much cash he would need if sales dipped.\"",
"\"Sales did dip, and he had enough money set aside.\"",
"\"He stopped asking me to remove the slow quarter after that.\""
]
},
{
"reaction": "Tessa gives a small smile.",
"dialogue": [
"\"My mother made me set up separate payments for rent and bills when I got my first job.\"",
"\"I thought she was being overprotective and changed nothing for six months.\"",
"\"Then I forgot an electricity bill during a busy week at work.\"",
"\"I set up the payments that evening and never mentioned that she had been right.\""
]
},
{
"reaction": "Tessa nods.",
"dialogue": [
"\"A client wanted to put all his savings into one company because he liked the founder.\"",
"\"I showed him what one bad quarter would do to the plan.\"",
"\"He spread it out after that.\""
]
},
{
"reaction": "Tessa looks down.",
"dialogue": [
"\"I set up automatic transfers for bills when I first started working.\"",
"\"It felt unnecessary until a busy month when I forgot everything else.\"",
"\"The bills were already paid, so I kept the system.\""
]
},
{
"reaction": "Tessa nods.",
"dialogue": [
"\"A friend changed phones and forgot about a subscription she had started years before.\"",
"\"It had been charging every month without her noticing.\"",
"\"We went through her bank statement and cancelled it.\""
]
},
{
"reaction": "Tessa frowns.",
"dialogue": [
"\"My first rental had a cheap washing machine that kept breaking.\"",
"\"I spent more on repairs than a better one would have cost.\"",
"\"Now I check the boring details before I sign anything.\""
]
},
{
"reaction": "Tessa crosses one leg over the other.",
"dialogue": [
"\"Maya used to price a lunch special by looking at what the cafe next door charged.\"",
"\"I made her add up the ingredients instead.\"",
"\"She raised it by fifty cents and stopped losing money on it.\""
]
},
{
"reaction": "Tessa glances at her phone.",
"dialogue": [
"\"Paige sent me a report with one number that did not match the total.\"",
"\"It was a copied cell from last month.\"",
"\"We found it before anyone else saw it.\""
]
},
{
"reaction": "Tessa nods.",
"dialogue": [
"\"Clara asked me to review an event budget.\"",
"\"She had booked twice as many chairs as the room could hold.\"",
"\"Cutting them paid for the lighting.\""
]
},
{
"reaction": "Tessa folds her hands.",
"dialogue": [
"\"Leah wanted to replace two treadmills at once.\"",
"\"I asked for the repair bills first.\"",
"\"One needed a belt. We did not need to replace both.\""
]
},
{
"reaction": "Tessa looks mildly annoyed.",
"dialogue": [
"\"Maya keeps a notebook under the till for recipes.\"",
"\"I asked her to put the cost beside each one.\"",
"\"She said it ruined the page. It also stopped her guessing.\""
]
},
{
"reaction": "Tessa smiles briefly.",
"dialogue": [
"\"Paige and I compared a supplier invoice over coffee.\"",
"\"The delivery fee had been added twice.\"",
"\"She got it removed before paying it.\""
]
},
{
"reaction": "Tessa sits straighter.",
"dialogue": [
"\"Clara likes a neat budget until someone asks for one more thing.\"",
"\"I made her leave a small line for last-minute costs.\"",
"\"She used it the next week for a broken cable.\""
]
},
{
"reaction": "Tessa lifts an eyebrow.",
"dialogue": [
"\"Leah wanted to give every new member a free towel.\"",
"\"I asked how many towels went missing in a month.\"",
"\"She stopped calling it free after that.\""
]
}
]
},
{
"action": "talk_sports",
"success": [
"\"Yes. If something starts hurting in the wrong way, stopping for a day is better than losing a month.\"",
"\"That is sensible. Put rest days in the plan before you are tired enough to need one.\"",
"\"A routine you can repeat is better than one brutal session followed by a week off.\"",
"\"I agree. Track the weight and the repetitions. Feeling exhausted does not tell you whether you improved.\""
],
"failure": [
"\"No. Training until you injure yourself is not dedication.\"",
"\"If the only way the plan looks difficult is by making it unsafe, change the plan.\"",
"\"Pain in a joint is not the same as tired muscles. You do not push through both.\"",
"\"You can take training seriously without making every session miserable.\""
],
"storyPool": [
{
"reaction": "Tessa straightens.",
"dialogue": [
"\"I started training because I hated feeling tired by the middle of the day.\"",
"\"The first trainer gave me a plan that was boring enough to work.\"",
"\"I followed it for months, and it worked.\""
]
},
{
"reaction": "She nods once.",
"dialogue": [
"\"I hurt my knee trying to run through a warning I did not want to hear.\"",
"\"Resting for two weeks made me angrier than the injury.\"",
"\"After that, I stopped trying to train through pain.\""
]
},
{
"reaction": "Tessa speaks with a little more warmth.",
"dialogue": [
"\"I added one more set at the end of a session because the workout had felt too easy.\"",
"\"My elbow started aching halfway through, but I finished it anyway.\"",
"\"Leah cut that exercise from my next session and told me to stop adding work she had not programmed.\"",
"\"I was annoyed, but the elbow was fine again by the end of the week.\""
]
},
{
"reaction": "She gives a small shrug.",
"dialogue": [
"\"I tried one of Leah's evening classes when my usual session was cancelled.\"",
"\"Two people kept talking through the instructions, and I missed the change to the next exercise.\"",
"\"I finished the class, but I went back to training on my own the following week.\""
]
},
{
"reaction": "Tessa lets out a short breath.",
"dialogue": [
"\"A friend challenged me to a rowing race at the gym.\"",
"\"I won, then spent ten minutes pretending my lungs were not trying to leave.\"",
"\"I have not agreed to another rowing race since.\""
]
},
{
"reaction": "Tessa nods.",
"dialogue": [
"\"I went to the gym after a twelve-hour day once and nearly left during the warm-up.\"",
"\"Leah put me on three simple machines and told me not to add anything else.\"",
"\"I finished in half an hour and went home. That was enough for that day.\""
]
},
{
"reaction": "Tessa frowns.",
"dialogue": [
"\"I once kept training through a sore wrist because I thought it would pass.\"",
"\"It got worse after a week.\"",
"\"Now I change the exercise before I make it a bigger problem.\""
]
},
{
"reaction": "Tessa smiles.",
"dialogue": [
"\"A colleague asked me to join a charity walk with almost no warning.\"",
"\"I thought it would be easy and wore the wrong shoes.\"",
"\"The last hour taught me to check the distance first.\""
]
},
{
"reaction": "Tessa flexes her wrist.",
"dialogue": [
"\"Leah changed my program after watching me rush the last set.\"",
"\"I said I was saving time.\"",
"\"She said I was practising bad form.\""
]
},
{
"reaction": "Tessa gives a small shrug.",
"dialogue": [
"\"Maya asked why I carry a gym bag to lunch.\"",
"\"Because I go straight to Leah after work.\"",
"\"She started keeping a bottle of water ready for me.\""
]
},
{
"reaction": "Tessa looks faintly amused.",
"dialogue": [
"\"Paige tried one of Leah's beginner sessions with me.\"",
"\"She spent half of it negotiating with the kettlebell.\"",
"\"She came back the next week.\""
]
},
{
"reaction": "Tessa sighs.",
"dialogue": [
"\"Clara asked if I would join a charity run her event was hosting.\"",
"\"I agreed before I checked the distance.\"",
"\"Leah heard about it and added hills to my program.\""
]
},
{
"reaction": "Tessa nods once.",
"dialogue": [
"\"Leah lets me complain exactly once about an exercise.\"",
"\"After that she changes the weight, not the plan.\"",
"\"It is a fair rule.\""
]
}
]
},
{
"action": "gentle_command",
"success": [
"\"That is clear. I can do that.\"",
"\"All right. Keep your voice like that.\""
],
"failure": [
"\"Say exactly what you want.\"",
"\"No. Do not order me around yet.\""
]
},
{
"action": "ask_panties_off",
"success": [
"\"Ask me properly and wait for the answer.\"",
"\"All right. You can take them off.\""
],
"failure": [
"\"No. I did not say you could do that.\"",
"\"Not yet. Slow down.\""
]
},
{
"action": "talk_computers",
"success": [
"\"That would save us time. More importantly, it would stop two people editing different copies.\"",
"\"Yes, I can see the benefit. It removes a step we keep getting wrong.\"",
"\"Automatic reminders would help, as long as someone still checks whether they were sent.\"",
"\"If it catches duplicate entries before the report goes out, I would use it.\""
],
"failure": [
"\"I still do not know what problem the software is meant to solve.\"",
"\"If it takes longer to enter the data than it saves later, it is not helping.\"",
"\"Who checks the result? I do not want everyone assuming the program did it correctly.\"",
"\"The dashboard looks tidy, but the number we need is still missing.\""
],
"storyPool": [
{
"reaction": "Tessa's expression changes at the familiar frustration.",
"dialogue": [
"\"A spreadsheet once recalculated itself while I was presenting it.\"",
"\"One linked cell had been copied from an old file.\"",
"\"I found it later and fixed the link.\""
]
},
{
"reaction": "She speaks evenly.",
"dialogue": [
"\"We automated part of a monthly report because copying the figures took an hour.\"",
"\"The first version left out every refunded payment.\"",
"\"It still finished in seconds, but the total was wrong.\"",
"\"Now the report runs automatically and somebody checks the refunds before it goes out.\""
]
},
{
"reaction": "Tessa nods.",
"dialogue": [
"\"My first manager kept every password on a sticky note under his keyboard.\"",
"\"He was very proud of it because nobody would think to look there.\"",
"\"Everybody looked there.\""
]
},
{
"reaction": "She looks briefly amused.",
"dialogue": [
"\"A new report template was supposed to make our team faster.\"",
"\"It added six boxes and removed the one number people needed.\"",
"\"We used the old file for another year.\""
]
},
{
"reaction": "Tessa speaks with quiet approval.",
"dialogue": [
"\"My team used to keep the final report in three different folders.\"",
"\"One month we sent the client an older copy because it had the most convincing filename.\"",
"\"I moved the approved files into one shared folder and added the date to every name.\"",
"\"We have not sent the wrong version since.\""
]
}
]
},
{
"action": "talk_photography",
"success": [
"\"The lighting makes her look composed, but her hands give away how uncomfortable she is.\"",
"\"Yes, the room looks expensive on purpose. The company wants clients to notice the office first.\"",
"\"That angle works. It makes the desk and the person look equally important.\"",
"\"I had not noticed who the photograph was aimed at. You are right, it is for investors, not customers.\""
],
"failure": [
"\"It looks expensive because of the office and the lighting. That does not tell me whether it is a good portrait.\"",
"\"I do not think the photograph works. The pose is stiff and the background is doing most of the work.\"",
"\"You are talking about the clothes, but the way she is standing matters more here.\"",
"\"I can see the polished finish. I cannot see what you think it says about her.\""
],
"storyPool": [
{
"reaction": "Tessa nods.",
"dialogue": [
"\"I hate formal work photographs.\"",
"\"Everyone leans forward the same amount and tries to look approachable.\"",
"\"You can tell who wanted to leave before the camera turned on.\""
]
},
{
"reaction": "She speaks matter-of-factly.",
"dialogue": [
"\"A trainer once filmed my deadlift to check my form.\"",
"\"I expected to look strong.\"",
"\"I looked like somebody carrying a sofa alone. Useful, but humbling.\""
]
},
{
"reaction": "Tessa looks down for a second.",
"dialogue": [
"\"My father took pictures only on holidays.\"",
"\"Half of them were badly focused, but he always caught people before they noticed him.\"",
"\"I still prefer those to the posed ones.\""
]
},
{
"reaction": "She nods at the practical side.",
"dialogue": [
"\"A photographer took pictures of our office for the annual report last year.\"",
"\"He moved the papers, mugs and spare chairs until the desks looked unused.\"",
"\"We chose a less tidy picture because it at least looked like people worked there.\""
]
},
{
"reaction": "Tessa smiles.",
"dialogue": [
"\"I once asked a colleague to take a photo for an event page.\"",
"\"He put me in front of a fire exit sign.\"",
"\"I made him move two steps to the left and take it again.\""
]
}
]
},
{
"action": "talk_music",
"success": [
"\"I like the way the drums come in after the first verse. It gives the song somewhere to go.\"",
"\"That one works for me. The beat stays steady enough that I can work without following it.\"",
"\"The singer leaves enough room for the chorus. It does not feel crowded.\"",
"\"The arrangement is clean. I can hear each part without the whole thing becoming bland.\""
],
"failure": [
"\"It is too loud for me. I cannot hear much underneath it.\"",
"\"It sounds like several people chose different songs and combined them.\"",
"\"I know what you mean, but I am not hearing that in this track.\"",
"\"There is too much happening at once. I stopped following it halfway through.\""
],
"storyPool": [
{
"reaction": "Tessa speaks after a short pause.",
"dialogue": [
"\"I put on an instrumental playlist while finishing a quarterly report once.\"",
"\"After an hour I realised it was the same twelve tracks repeating.\"",
"\"I left it on because I had stopped noticing it, which was exactly what I needed.\""
]
},
{
"reaction": "She gives a small smile.",
"dialogue": [
"\"My mother signed me up for piano lessons when I was ten.\"",
"\"I could play the pieces without mistakes at home, but my hands went cold before every recital.\"",
"\"At the last one, I rushed through the first page and lost my place.\"",
"\"I stopped lessons later that year and never missed performing.\""
]
},
{
"reaction": "Tessa nods.",
"dialogue": [
"\"A good song at the gym can get you through the last part of a session.\"",
"\"Leah changed the playlist halfway through my last set once.\"",
"\"I lost count, put the weight down, and made her tell me whether I had done seven or eight.\"",
"\"She said seven. I still think it was eight.\""
]
},
{
"reaction": "Tessa frowns.",
"dialogue": [
"\"A colleague played motivational playlists in the office every Monday.\"",
"\"They were all songs about winning.\"",
"\"Nobody was winning by ten in the morning.\""
]
},
{
"reaction": "Tessa speaks plainly.",
"dialogue": [
"\"A colleague used the same seven-minute song for every presentation break.\"",
"\"People always started talking over it before the second chorus.\"",
"\"After the third meeting, I edited the playlist and replaced it with a shorter track.\""
]
}
]
},
{
"action": "talk_art",
"success": [
"\"I had not noticed how large it looks beside the doorway. That changes the whole room.\"",
"\"Yes, the colour is decorative, but the shape is what made me stop.\"",
"\"I see what you mean. People are leaving more space around it than the other pieces.\"",
"\"The empty wall beside it helps. Another picture there would make both of them harder to look at.\""
],
"failure": [
"\"I do not know much about art, but that explanation did not tell me what you actually saw.\"",
"\"The price may be impressive. I am asking whether you like the work itself.\"",
"\"You could say that about almost anything in this room. Be more specific.\"",
"\"You have described the frame. What do you think about the picture inside it?\""
],
"storyPool": [
{
"reaction": "Tessa takes a few seconds to answer.",
"dialogue": [
"\"My office bought a very expensive painting for the lobby.\"",
"\"Six people spent an hour discussing whether it made the company look ambitious.\"",
"\"Nobody admitted whether they liked it until the receptionist said she hated the colour. Half the room agreed with her.\""
]
},
{
"reaction": "She shrugs.",
"dialogue": [
"\"I went to a small exhibition with a colleague and expected to stay for twenty minutes.\"",
"\"One painting of an empty office looked uncomfortably familiar.\"",
"\"I went back to it twice before we left, although I still could not explain why I liked it.\""
]
},
{
"reaction": "Tessa speaks with restrained amusement.",
"dialogue": [
"\"A client gave me a framed print as a thank-you gift.\"",
"\"It was a sailboat at sunset.\"",
"\"I hung it in the guest bathroom, which I think was diplomatic.\""
]
},
{
"reaction": "She nods once.",
"dialogue": [
"\"At one opening, the artist spent ten minutes explaining a pile of broken office chairs.\"",
"\"I understood what she meant, but the explanation was more interesting than the piece.\"",
"\"The small sketches beside it were much easier for me to remember.\""
]
},
{
"reaction": "Tessa looks down.",
"dialogue": [
"\"I used to draw buildings in the margins of my school notes.\"",
"\"All straight lines and windows.\"",
"\"I stopped because I was bad at people, not because I disliked it.\""
]
}
]
},
{
"action": "talk_cooking",
"success": [
"\"That sounds manageable. One pan and enough leftovers to take to work tomorrow.\"",
"\"Preparing the vegetables while the rice cooks makes sense. I could probably manage that.\"",
"\"I like that the recipe gives actual times instead of telling me to cook it until it feels right.\"",
"\"Using the leftovers for lunch is the part that might convince me to try it.\""
],
"failure": [
"\"Sorry, food is already not my subject, please don't ask me about recipes.\"",
"\"That is too many steps for something I would make after work.\"",
"\"I would spend longer cleaning up than eating. I am not making that.\"",
"\"You skipped the cooking time. That is the one part I actually need to know.\""
],
"storyPool": [
{
"reaction": "Tessa gives a brief nod.",
"dialogue": [
"\"I meal-prepped for a month because I was tired of buying lunch near the office.\"",
"\"By week three I could not look at another chicken breast.\"",
"\"I started making two different meals instead.\""
]
},
{
"reaction": "She looks mildly annoyed at the memory.",
"dialogue": [
"\"I once invited clients to dinner and tried cooking instead of booking somewhere.\"",
"\"The rice took twice as long as the recipe said.\"",
"\"I learned that a reservation is sometimes a better business decision.\""
]
},
{
"reaction": "Tessa speaks plainly.",
"dialogue": [
"\"I am good at food that goes in one container.\"",
"\"Protein, vegetables, something warm, done.\"",
"\"If a recipe needs twelve bowls, it has lost me.\""
]
},
{
"reaction": "Tessa smiles.",
"dialogue": [
"\"A former roommate made an incredible pasta sauce.\"",
"\"She would never measure anything, which I found irresponsible.\"",
"\"It was better than mine every time.\""
]
},
{
"reaction": "Tessa folds her arms.",
"dialogue": [
"\"I used to think cooking was just another task to optimize.\"",
"\"Then I burnt dinner after a twelve-hour day and ate it standing over the sink.\"",
"\"Now I keep one meal in the freezer for bad evenings.\""
]
}
]
},
{
"action": "talk_massage",
"success": [
"\"Starting around the sore spot makes sense. Going straight into it usually makes me tense up.\"",
"\"Yes, less pressure is sometimes better. The person should not have to endure the massage.\"",
"\"Checking before you press harder is important. People do not all react the same way.\"",
"\"That sounds useful. I want my shoulders to feel better tomorrow, not only while I am lying down.\""
],
"failure": [
"\"That sounds more painful than helpful. I would ask you to stop.\"",
"\"You keep saying firm, but not how you know when the pressure is too much.\"",
"\"I need a clearer explanation before I let someone try that on me.\"",
"\"Random pressure does not help. You need to know which muscle you are working on.\""
],
"storyPool": [
{
"reaction": "Tessa answers directly.",
"dialogue": [
"\"Sports massage helped after I hurt my knee.\"",
"\"Not because it fixed anything overnight.\"",
"\"It made the exercises easier to keep doing.\""
]
},
{
"reaction": "She rubs the back of her neck once.",
"dialogue": [
"\"A therapist kept pressing the same part of my calf after I told him it hurt.\"",
"\"He said the pain meant he had found the right spot.\"",
"\"I ended the appointment early and booked somewhere else the next time.\""
]
},
{
"reaction": "Tessa gives a small shrug.",
"dialogue": [
"\"I booked a massage once after a rough week at work.\"",
"\"The therapist kept asking whether I felt transformed.\"",
"\"I felt less sore. That was enough.\""
]
},
{
"reaction": "She speaks with calm certainty.",
"dialogue": [
"\"Leah gave me five minutes of stretches to do after training.\"",
"\"I ignored them for a week because they seemed too simple to matter.\"",
"\"My neck started bothering me again, so I put the list beside my gym bag.\"",
"\"I still skip them sometimes, but not for a whole week.\""
]
},
{
"reaction": "Tessa looks briefly amused.",
"dialogue": [
"\"A friend gave me a massage gun for my birthday.\"",
"\"I tried the highest setting on my thigh and nearly dropped it.\"",
"\"The next morning the spot was tender enough that I noticed it every time I sat down.\"",
"\"Now I start on the lowest setting and keep it away from my knees.\""
]
}
]
}
]
}
END_DIALOGUE_DATA %//% DIALOGUE_DATA
{
"girlId": "g4",
"girl": "Leah Cross",
"readyVariable": "dialogue005ready",
"notes": [],
"responses": [
{
"action": "talk_sports",
"success": [
"\"Yes. If you can repeat the movement with the same form at the end of the set, the weight is about right.\"",
"\"Exactly. Recovery is part of the program. You do not wait until somebody gets hurt to mention it.\"",
"\"Start with the movement, then add weight. I would rather correct it now than deal with an injury later.\"",
"\"That is a sensible plan. Three sessions you can actually finish are better than one that ruins the rest of your week.\""
],
"failure": [
"\"No. Adding weight before the movement is stable is how people get hurt.\"",
"\"If your whole plan is to go harder every time, you do not have a plan yet.\"",
"\"I would not put a beginner under that much weight. Show them the movement first.\"",
"\"Sore muscles are normal. A sharp pain in the knee is a reason to stop.\""
],
"storyPool": [
{
"reaction": "Leah's answer comes immediately.",
"dialogue": [
"\"A member came in every day for a month and never added weight.\"",
"\"He kept losing his balance, so we worked with the same light bar until he could control it.\"",
"\"When we finally added weight, he completed the whole set without me correcting him once.\"",
"\"He stopped asking whether the bar looked too light after that.\""
]
},
{
"reaction": "She folds her arms.",
"dialogue": [
"\"A member kept letting his knees drop inward on squats because the heavier weight looked better on the bar.\"",
"\"I lowered it and showed him the movement again. He was not happy about it.\"",
"\"Two weeks later he could squat without his knees hurting, so the argument ended there.\""
]
},
{
"reaction": "Leah gives a brief laugh.",
"dialogue": [
"\"A teenager once asked how quickly he could get huge.\"",
"\"I told him the honest answer and he looked offended.\"",
"\"He still comes in twice a week, so maybe he heard me.\""
]
},
{
"reaction": "She nods once.",
"dialogue": [
"\"One of the strongest women here still asks me to watch her first set.\"",
"\"Last month I pointed out that her right foot was turning out.\"",
"\"She lowered the weight, fixed it, and carried on. There was no argument.\""
]
},
{
"reaction": "Leah looks down at her hands.",
"dialogue": [
"\"I got injured trying to beat a number I had already beaten.\"",
"\"Nobody else was even using the rack. I just did not want to end the session below my best.\"",
"\"My shoulder hurt for six weeks, and the number stopped mattering before I got home.\""
]
},
{
"reaction": "Leah nods.",
"dialogue": [
"\"A new member once tried to add weight to every exercise in her first week.\"",
"\"I made her keep the same weight and learn the movement first.\"",
"\"She came back a month later and thanked me.\""
]
},
{
"reaction": "Leah frowns.",
"dialogue": [
"\"People start training hard after watching one video online.\"",
"\"Then they hurt a shoulder because nobody showed them the basics.\"",
"\"I would rather spend ten minutes fixing that first.\""
]
},
{
"reaction": "Leah smiles.",
"dialogue": [
"\"On Saturdays, some of the regulars train together before the gym gets busy.\"",
"\"Nobody uses the same program, but they still check on each other.\"",
"\"That is usually the best part of the morning.\""
]
},
{
"reaction": "Leah nods.",
"dialogue": [
"\"I replaced a bench last year because it had started to wobble.\"",
"\"It still looked fine from across the room.\"",
"\"Equipment does not need to look broken before you take it out.\""
]
},
{
"reaction": "Leah leans back.",
"dialogue": [
"\"Tessa usually comes in straight from the office and changes her shoes in the locker room.\"",
"\"Last Thursday she called the split squats unreasonable before she had even started.\"",
"\"Then she finished every set and tried to leave before stretching.\"",
"\"I made her come back. Complaining does not get her out of the boring part.\""
]
},
{
"reaction": "Leah gestures with one hand.",
"dialogue": [
"\"Bianca sent me a client whose shoulders were pulling her forward.\"",
"\"We worked on her upper back for three weeks.\"",
"\"She stopped getting headaches at her desk.\""
]
},
{
"reaction": "Leah snorts.",
"dialogue": [
"\"Rita runs the beach path before it gets busy.\"",
"\"I joined her once and forgot how much sand slows you down.\"",
"\"She did not slow down.\""
]
},
{
"reaction": "Leah nods.",
"dialogue": [
"\"Amara asked for something that would help on long courier shifts.\"",
"\"I gave her short leg work and grip work.\"",
"\"She came back because carrying bags upstairs still sucked.\""
]
},
{
"reaction": "Leah checks an imaginary list.",
"dialogue": [
"\"Tessa missed a week and told me it was a bad week at work.\"",
"\"She started explaining why she had not trained, but I only asked which evening she could come back.\"",
"\"She checked her calendar and booked Thursday before she left.\""
]
},
{
"reaction": "Leah folds her arms.",
"dialogue": [
"\"Bianca knows when a client needs recovery instead of another hard session.\"",
"\"She sends them to me first if they have stopped moving properly.\"",
"\"It saves everyone time.\""
]
},
{
"reaction": "Leah looks pleased.",
"dialogue": [
"\"Rita wanted a faster start for a local race.\"",
"\"We worked on short hill runs, not magic.\"",
"\"She took twelve seconds off her first split.\""
]
},
{
"reaction": "Leah shakes her head.",
"dialogue": [
"\"Amara turns up with a courier bag full of water bottles and receipts.\"",
"\"I tell her to leave it by the desk.\"",
"\"She says it is her resistance training.\""
]
}
]
},
{
"action": "talk_music",
"success": [
"\"Yes, that beat would work for a long set. It stays steady without getting dull.\"",
"\"I could use that in the morning class. It is quick enough to move to without being obnoxious.\"",
"\"The rhythm is easy to follow. That matters when people are trying to keep count.\"",
"\"That song picks up at the right time. I would save the last chorus for the last set.\""
],
"failure": [
"\"I would not use that for training. The tempo changes too often.\"",
"\"I am not hearing the part you mean. Play it again from the chorus.\"",
"\"That beat is too slow for the class I run. People would lose the count.\"",
"\"It is loud, but there is not much rhythm underneath it.\""
],
"storyPool": [
{
"reaction": "Leah's mouth twitches.",
"dialogue": [
"\"I had a playlist for early mornings that was all heavy guitars.\"",
"\"Then a beginner complained it made her feel like she was entering a fight.\"",
"\"She was right. I changed it.\""
]
},
{
"reaction": "She nods.",
"dialogue": [
"\"A member once asked me to time her last set to the chorus of one song.\"",
"\"The beat was steady enough that she stopped rushing the repetitions.\"",
"\"She still uses the same song when she trains alone.\""
]
},
{
"reaction": "Leah looks embarrassed.",
"dialogue": [
"\"I know every word to some terrible pop songs.\"",
"\"They came on during the quiet afternoon shift for years.\"",
"\"Do not tell anyone.\""
]
},
{
"reaction": "She gives a small shrug.",
"dialogue": [
"\"One member always trains with one earbud in.\"",
"\"I asked what she listens to.\"",
"\"It is old movie soundtracks. It works for her.\""
]
},
{
"reaction": "Leah gestures toward the speakers.",
"dialogue": [
"\"I visited another gym that had the speakers turned up so high the staff had to shout at the desk.\"",
"\"Nobody could hear instructions during the class either.\"",
"\"I left with a headache and turned ours down the next morning.\""
]
},
{
"reaction": "Leah nods.",
"dialogue": [
"\"I changed the morning playlist after a member said it made her anxious.\"",
"\"It was all loud guitars before eight.\"",
"\"Now I save that one for later in the day.\""
]
},
{
"reaction": "Leah smiles.",
"dialogue": [
"\"One regular trains with the same three songs every session.\"",
"\"She says she knows exactly where to push harder in each one.\"",
"\"It works for her, so I leave her alone.\""
]
},
{
"reaction": "Leah laughs.",
"dialogue": [
"\"The gym radio once got stuck on a station playing old love songs.\"",
"\"Nobody changed it for an hour.\"",
"\"People kept lifting, so it was not a disaster.\""
]
},
{
"reaction": "Leah rubs her jaw.",
"dialogue": [
"\"Sofia played at a small gym event once.\"",
"\"The sound check was loud enough to rattle the plates.\"",
"\"People stayed after the class instead of leaving early.\""
]
},
{
"reaction": "Leah shrugs.",
"dialogue": [
"\"Tessa brings the same workout playlist every week.\"",
"\"If I change the song, she notices.\"",
"\"I leave it alone now.\""
]
},
{
"reaction": "Leah tilts her head.",
"dialogue": [
"\"Bianca sent me a playlist for the late class.\"",
"\"Half the songs were too slow for squats.\"",
"\"The other half worked, so I kept those.\""
]
},
{
"reaction": "Leah nods.",
"dialogue": [
"\"Rita runs with one earbud in.\"",
"\"She says she needs to hear bikes behind her.\"",
"\"I told her to keep doing that after a cyclist passed too close on the river path.\""
]
},
{
"reaction": "Leah looks toward the door.",
"dialogue": [
"\"Amara asked for music that would keep her moving on long routes.\"",
"\"I gave her a playlist from the boxing class.\"",
"\"She said it made stairs less annoying.\""
]
}
]
},
{
"action": "talk_photography",
"success": [
"\"That angle would be useful for checking progress. You can see the back and shoulders clearly.\"",
"\"Yes, the posture is the first thing I noticed too. She is leaning away from the weak side.\"",
"\"The shoulders are uneven in that one. I would take another from directly behind.\"",
"\"Using the same light and distance matters. Otherwise the two pictures do not compare properly.\""
],
"failure": [
"\"That pose hides the part you are meant to be checking. Take the picture again.\"",
"\"If the only goal is to look good, it is not much use as a progress photo.\"",
"\"She is twisting around the weaker side. Ask her to stand normally.\"",
"\"The light is hiding the shape of her back. Move her away from the window.\""
],
"storyPool": [
{
"reaction": "Leah grimaces.",
"dialogue": [
"\"A guy asked to use the squat rack for a photograph while somebody else was waiting to train.\"",
"\"He loaded the bar, took six pictures and left without doing a single repetition.\"",
"\"I made him put every plate back before he went.\""
]
},
{
"reaction": "She speaks more evenly.",
"dialogue": [
"\"A member filmed her squats because her left knee kept hurting.\"",
"\"The video showed it turning inward on the last two repetitions of every set.\"",
"\"We lowered the weight and stopped the set as soon as her form changed.\""
]
},
{
"reaction": "Leah shakes her head.",
"dialogue": [
"\"A member asked me to take a before-and-after photo on the same day.\"",
"\"He just wanted different lighting and a tighter shirt.\"",
"\"I told him to come back in three months.\""
]
},
{
"reaction": "She looks thoughtful.",
"dialogue": [
"\"Rita sent me a photograph after a local race with mud up both legs and her hair stuck to her face.\"",
"\"She hated it and asked whether I had a better one.\"",
"\"I kept that picture because it was the only one where she looked as tired as she had been at the finish.\""
]
},
{
"reaction": "Leah laughs.",
"dialogue": [
"\"Someone put a ring light by the squat rack once.\"",
"\"Every person who used it forgot how to put the plates back.\"",
"\"The light lasted one day.\""
]
}
]
},
{
"action": "talk_cooking",
"success": [
"\"That sounds practical. There is enough protein, and it is still food somebody would want to eat.\"",
"\"Preparing two lunches at once is realistic. Asking people to cook every night usually is not.\"",
"\"Yes. You can eat well without having the same dry meal every day.\"",
"\"I would give that to a client. The ingredients are cheap and the portions actually make sense.\""
],
"failure": [
"\"No. Eating anything you want is not a useful plan just because you are trying to gain weight.\"",
"\"That is not enough food for somebody training four times a week.\"",
"\"Nobody is going to follow that breakfast plan for long. It takes too much time in the morning.\"",
"\"The meals need to support the training. This would leave most people tired before the session starts.\""
],
"storyPool": [
{
"reaction": "Leah gives a short nod.",
"dialogue": [
"\"I ate dry chicken and rice for two years because somebody told me it was clean.\"",
"\"Then a member brought in food that actually tasted good and had the same basics.\"",
"\"I was annoyed enough to learn how to cook.\""
]
},
{
"reaction": "She scratches her jaw.",
"dialogue": [
"\"A guy at the gym used to sell meal plans with forty ingredients.\"",
"\"One of his clients brought the shopping list to me because she could not find half of it.\"",
"\"We cut the plan down to a few meals she could make after work.\"",
"\"She followed that version for the rest of the month.\""
]
},
{
"reaction": "Leah smiles.",
"dialogue": [
"\"I make a big pot of chilli when the weather turns.\"",
"\"It is cheap, it fills people up, and it survives reheating.\"",
"\"I make enough for a few meals at once.\""
]
},
{
"reaction": "Leah lowers her voice.",
"dialogue": [
"\"One of my younger members kept skipping meals because she thought lighter meant better.\"",
"\"We made eggs and toast in the staff room after training.\"",
"\"She looked embarrassed, but she came back the next week and trained better.\""
]
},
{
"reaction": "Leah lifts one shoulder.",
"dialogue": [
"\"Supplements are not dinner.\"",
"\"I have watched people spend a fortune on powder, then eat crisps in the car.\"",
"\"One member did that for a week and wondered why he felt awful during training.\"",
"\"I told him to buy groceries before he bought another tub.\""
]
}
]
},
{
"action": "talk_finance",
"success": [
"\"I do not enjoy the accounting, but keeping repair money separate would make the bad months easier.\"",
"\"Yes. Rent, wages and maintenance come out before I think about new equipment.\"",
"\"That estimate makes sense. A machine is never only the price on the order page.\"",
"\"A monthly check would help. I usually notice a cost after it has already become annoying.\""
],
"failure": [
"\"No. Wanting the gym to succeed does not tell me how we are paying the bills.\"",
"\"If the budget only works when nothing breaks, it needs a repair allowance.\"",
"\"You have left out the rent. That is the first number I need to see.\"",
"\"I need an actual maintenance figure, not a promise that the equipment will last.\""
],
"storyPool": [
{
"reaction": "Leah glances at one of the cable machines.",
"dialogue": [
"\"A cable started fraying on one machine, and I tried to keep it running until the replacement arrived.\"",
"\"It snapped the next morning, so I paid for an emergency callout and lost the machine for three days.\"",
"\"Now I take equipment out of use as soon as I see the same kind of wear.\""
]
},
{
"reaction": "She speaks with quiet annoyance.",
"dialogue": [
"\"Cheap equipment is not cheap if you have to replace it.\"",
"\"I learned that with a row of bargain benches that started wobbling after six months.\"",
"\"Never again.\""
]
},
{
"reaction": "Leah gives a small shrug.",
"dialogue": [
"\"The gym has good months and bad months.\"",
"\"January is busy. November is usually quiet.\"",
"\"I plan the year around both.\""
]
},
{
"reaction": "She nods once.",
"dialogue": [
"\"A new member arrived with expensive shoes, matching clothes and a bag full of supplements.\"",
"\"He was surprised when I told him the beginner program needed none of them.\"",
"\"He returned half the supplements and paid for three months of membership instead.\""
]
},
{
"reaction": "Leah looks briefly tired.",
"dialogue": [
"\"I once let a member fall behind on payments too long.\"",
"\"He kept promising next week.\"",
"\"I had to tell him he could not keep training without paying.\""
]
}
]
},
{
"action": "talk_art",
"success": [
"\"I can see what you mean about the way the figure is standing. The weight is all on one leg.\"",
"\"The shape makes more sense when you explain how the person is moving.\"",
"\"I noticed the balance before the colour. That is probably why I kept looking at it.\"",
"\"The posture looks uncomfortable on purpose. I understand that part.\""
],
"failure": [
"\"You lost me. Show me which part of the picture you are talking about.\"",
"\"I understand the explanation, but I still do not like the piece very much.\"",
"\"Can you say that more simply? I do not know what you think the picture is showing.\"",
"\"I looked at it again. I still do not see what you see in it.\""
],
"storyPool": [
{
"reaction": "Leah takes a second to answer.",
"dialogue": [
"\"A kid drew a dragon on the whiteboard at the gym once.\"",
"\"It had dumbbells for feet and looked furious.\"",
"\"I left it there until someone needed the board.\""
]
},
{
"reaction": "She gives a small shrug.",
"dialogue": [
"\"I like murals when they make a place feel lived in.\"",
"\"The wall outside the gym used to be bare and people dumped rubbish there.\"",
"\"After it got painted, they mostly stopped.\""
]
},
{
"reaction": "Leah speaks plainly.",
"dialogue": [
"\"A member invited me to her student exhibition last year.\"",
"\"I did not understand most of the captions, but she had built a full-size figure from wire.\"",
"\"She showed me the cuts on her hands from making it. That part I understood.\""
]
},
{
"reaction": "Leah smiles.",
"dialogue": [
"\"A member has a tattoo of a wolf on his calf.\"",
"\"It is badly done, but he got it after losing a lot of weight.\"",
"\"I would not change it for him.\""
]
},
{
"reaction": "Leah nods once.",
"dialogue": [
"\"The old gym sign was hand-painted.\"",
"\"When it started peeling, everyone wanted a clean plastic one.\"",
"\"I kept the old lettering on the new sign.\""
]
}
]
},
{
"action": "talk_computers",
"success": [
"\"If it keeps the schedule in one place and stops double bookings, I would use it.\"",
"\"I do not need to understand every setting. I need it to work at the front desk.\"",
"\"Automatic reminders would help. People forget appointments and then blame the calendar.\"",
"\"That would save me three phone calls every time somebody changes a booking.\""
],
"failure": [
"\"No. You made it sound complicated and still did not tell me why I should care.\"",
"\"If I need a manual to understand the benefit, the benefit is already losing.\"",
"\"That sounds like a new way for the front desk to break something.\"",
"\"No. I asked what it fixes, not how many menus it has.\""
],
"storyPool": [
{
"reaction": "Leah exhales through her nose.",
"dialogue": [
"\"The gym software charged one member twice for three months.\"",
"\"He never noticed. I did.\"",
"\"Fixing it took longer than replacing a broken cable machine.\""
]
},
{
"reaction": "She shakes her head.",
"dialogue": [
"\"The treadmills have touchscreens now.\"",
"\"Half the time people use them to watch videos instead of running.\"",
"\"I prefer buttons that do one thing.\""
]
},
{
"reaction": "Leah speaks with blunt approval.",
"dialogue": [
"\"We double-booked a training slot once when somebody changed the paper diary but not the computer.\"",
"\"Both clients arrived after work, and neither of them had another evening free.\"",
"\"Now every change goes into the booking system before I put the phone down.\""
]
},
{
"reaction": "Leah laughs.",
"dialogue": [
"\"A member told me the Wi-Fi was broken because his playlist would not load.\"",
"\"His phone was in airplane mode.\"",
"\"I made him fix it himself.\""
]
},
{
"reaction": "Leah nods.",
"dialogue": [
"\"I keep backups of the member list now.\"",
"\"I learned after a laptop update ate a week of sign-ups.\"",
"\"Writing names down is not old-fashioned if it saves your job.\""
]
}
]
},
{
"action": "talk_massage",
"success": [
"\"Yes. Recovery work matters if you want to train again without carrying the same pain into the next session.\"",
"\"That pressure sounds about right. Start gently and increase it only if the muscle loosens.\"",
"\"Work around the tight spot first. Pressing straight into it usually makes people tense up.\"",
"\"A good massage should leave the person moving better the next day, not bruised.\""
],
"failure": [
"\"No. You need to know which muscle you are working on before you start pressing.\"",
"\"If the person leaves tighter than they started, the pressure was probably too much.\"",
"\"Pain does not prove the massage is working. Ask before you go harder.\"",
"\"More force is not always the answer. Sometimes you need to slow down and work around the area.\""
],
"storyPool": [
{
"reaction": "Leah answers without hesitation.",
"dialogue": [
"\"I booked a sports massage the day after a heavy leg session once.\"",
"\"The therapist started gently and spent more time on my hips than on the sore part of my thigh.\"",
"\"I expected it to be too light, but I could move more easily the next morning.\""
]
},
{
"reaction": "She rubs one shoulder.",
"dialogue": [
"\"I had a knot in my upper back for weeks after moving equipment.\"",
"\"A physiotherapist worked around it first instead of digging into it.\"",
"\"That was the first time it actually eased.\""
]
},
{
"reaction": "Leah gives a short laugh.",
"dialogue": [
"\"A trainer once told a member to use a massage gun on everything.\"",
"\"The member bruised her calf and thought that meant it was working.\"",
"\"I took the thing away from both of them.\""
]
},
{
"reaction": "She nods once.",
"dialogue": [
"\"One member kept asking what supplement would fix his sore shoulders.\"",
"\"He was sleeping five hours, skipping the warm-up and training the same movement every day.\"",
"\"I changed his program and told him to go to bed earlier. The shoulders improved before he bought anything.\""
]
},
{
"reaction": "Leah nods.",
"dialogue": [
"\"My hands cramped after I spent a whole afternoon replacing grips on the machines.\"",
"\"Bianca showed me how to work across the palm and stretch each finger afterward.\"",
"\"I do it after repair days now, before the stiffness reaches my wrists.\""
]
}
]
},
{
"action": "flirt_soft",
"success": [
"\"Okay. That was nice.\"",
"\"I can tell you meant that.\"",
"\"You almost made me blush. Almost.\""
],
"failure": [
"\"Too early.\"",
"\"That sounded forced.\"",
"\"You do not have to try that hard.\""
]
},
{
"action": "flirt_bold",
"success": [
"\"Well, you made your point.\"",
"\"You really said that out loud.\"",
"\"Fuck. Give me a second.\""
],
"failure": [
"\"No. Too much.\"",
"\"That was too much.\"",
"\"Try saying it without showing off.\""
]
},
{
"action": "compliment_style",
"success": [
"\"Thanks. I chose it because I can move in it.\"",
"\"You noticed the fit. Thanks.\"",
"\"Thanks. I nearly wore something else.\""
],
"failure": [
"\"That did not sound sincere.\"",
"\"All right, that is enough.\"",
"\"Let us talk about something else.\""
]
},
{
"action": "admire_outfit",
"success": [
"\"I saw you looking. Do you like it?\"",
"\"You can say you like the outfit.\"",
"\"I noticed. Just do not stare all evening.\""
],
"failure": [
"\"Do not stare.\"",
"\"Eyes up.\"",
"\"That is enough looking.\""
]
},
{
"action": "gaze_chest",
"success": [
"\"I saw that. Look at my face now.\"",
"\"Yes, I noticed where your eyes went.\"",
"\"You are not subtle, but I am not stopping you yet.\""
],
"failure": [
"\"Eyes up.\"",
"\"My face is up here.\"",
"\"Do not stare at my chest.\""
]
},
{
"action": "gaze_ass",
"success": [
"\"I know where you looked. You can admit it.\"",
"\"Do not act innocent. I saw you.\"",
"\"You are terrible at hiding it, but I do not mind.\""
],
"failure": [
"\"Stop staring at my ass.\"",
"\"Eyes up.\"",
"\"Do not be obvious.\""
]
},
{
"action": "gaze_legs",
"success": [
"\"You noticed my legs. I noticed you looking.\"",
"\"You can look for a second.\"",
"\"Not subtle, but I do not mind.\""
],
"failure": [
"\"Eyes up.\"",
"\"Do not stare.\"",
"\"That is enough looking.\""
]
},
{
"action": "look_eyes",
"success": [
"\"Are you waiting for me to look away first?\"",
"\"All right. I am still looking.\"",
"\"You really do not look away easily.\""
],
"failure": [
"\"Do not stare me down.\"",
"\"Too much.\"",
"\"Stop trying so hard.\""
]
},
{
"action": "touch_hand",
"success": [
"\"You can hold my hand. You do not need to make it complicated.\"",
"\"All right. Just my hand for now.\"",
"\"That is fine. Keep your grip loose.\""
],
"failure": [
"\"No. Not my hand.\"",
"\"Do not touch me yet.\"",
"\"Too soon.\""
]
},
{
"action": "touch_arm",
"success": [
"\"I noticed your hand. You can leave it there.\"",
"\"Keep the touch light.\"",
"\"That is fine. Do not move higher yet.\""
],
"failure": [
"\"No. Do not touch me yet.\"",
"\"Too soon.\"",
"\"Hands off.\""
]
},
{
"action": "tease_words",
"success": [
"\"You are getting brave. I almost like it.\"",
"\"That one worked better than you expected.\"",
"\"You enjoy seeing how far you can push me, do you?\""
],
"failure": [
"\"Too soon.\"",
"\"That was clumsy.\"",
"\"Do not push it.\""
]
},
{
"action": "whisper_dirty",
"success": [
"\"I heard you. Keep your voice down.\"",
"\"If you say that to me, be ready for an answer.\"",
"\"That was filthy. Say it again when we are alone.\""
],
"failure": [
"\"No. Not in my ear.\"",
"\"Too soon.\"",
"\"Back up.\""
]
}
]
}
END_DIALOGUE_DATA %//% DIALOGUE_DATA
{
"girlId": "g5",
"girl": "Sofia Reed",
"readyVariable": "dialogue006ready",
"notes": [],
"responses": [
{
"action": "talk_music",
"success": [
"\"Yes, the drums sit a little behind the vocal. That is why the chorus feels relaxed instead of slow.\"",
"\"You heard the bass change before the second verse. I missed it the first time.\"",
"\"Exactly. The lyrics sound cheerful, but the chord change underneath them does not.\"",
"\"I had not noticed she comes in early on that line. Now I cannot stop hearing it.\""
],
"failure": [
"\"I do not agree. Turning it up would only cover the vocal.\"",
"\"I think you are hearing the volume, not the tempo.\"",
"\"The groove does not change there. It is the bass line. Listen again.\"",
"\"Which part do you mean? Saying it has good vibes does not tell me much.\""
],
"storyPool": [
{
"reaction": "Sofia nods.",
"dialogue": [
"\"A microphone kept cutting out during the first song of a set once.\"",
"\"I started singing harder because I thought the problem was my volume, and the monitor immediately squealed.\"",
"\"The cable was loose. We replaced it before the second song, and I stopped shouting at the equipment.\""
]
},
{
"reaction": "Sofia smiles.",
"dialogue": [
"\"I once forgot the first line of a song in front of a full room.\"",
"\"The crowd sang it back to me.\"",
"\"I was embarrassed, but they helped me get through it.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"I saw a singer forget the planned ending and hold the last note until the band caught up.\"",
"\"It was rougher than the recorded version, but everyone in the room went quiet.\"",
"\"When I listened to the record later, I missed the mistake.\""
]
},
{
"reaction": "Sofia looks down.",
"dialogue": [
"\"There is one song I only play when the room is already listening.\"",
"\"It is quieter than the rest of my set.\"",
"\"If people keep talking through it, I switch back to the louder songs.\""
]
},
{
"reaction": "Sofia smiles.",
"dialogue": [
"\"The first band I sang with rehearsed in a garage beside a tyre shop.\"",
"\"Every song had a drill sound in it somewhere.\"",
"\"It was noisy, but I still miss it.\""
]
},
{
"reaction": "Sofia smiles.",
"dialogue": [
"\"The first place that paid me to sing had a stage barely big enough for a mic stand.\"",
"\"I kept bumping into the speaker while I moved.\"",
"\"I learned to stay in one spot that night.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"I write down song ideas in my phone after shows.\"",
"\"Most are just one line or a note about a beat.\"",
"\"Sometimes I look at them later and remember what I meant.\""
]
},
{
"reaction": "Sofia shakes her head.",
"dialogue": [
"\"A sound guy once turned my monitor down halfway through a set.\"",
"\"I could barely hear myself for two songs.\"",
"\"Afterward, I asked him to tell me before he changed anything.\""
]
},
{
"reaction": "Sofia laughs.",
"dialogue": [
"\"I played an empty room once because the promoter had the wrong start time.\"",
"\"The bartender stayed, so I did the set anyway.\"",
"\"By the last song, a few people had come in.\""
]
},
{
"reaction": "Sofia lowers her voice.",
"dialogue": [
"\"Hazel came to a small set on a Tuesday and stayed by the back wall at first.\"",
"\"After the last song she told me which one she liked.\"",
"\"She had remembered every word.\""
]
},
{
"reaction": "Sofia taps a beat on her knee.",
"dialogue": [
"\"Diana streamed one of my sets from the side of the room.\"",
"\"The first song clipped because the mic was too high.\"",
"\"She fixed it before the second.\""
]
},
{
"reaction": "Sofia laughs.",
"dialogue": [
"\"Hana and I got booked on the same short bill.\"",
"\"She had the early slot and I had the late one.\"",
"\"We ate noodles after and complained about the organiser.\""
]
},
{
"reaction": "Sofia rolls her eyes.",
"dialogue": [
"\"Selene worked the door the night the drummer did not show.\"",
"\"She found me a stool, a cable, and someone who knew three chords.\"",
"\"We got through the set.\""
]
},
{
"reaction": "Sofia lifts a hand.",
"dialogue": [
"\"I sang at Iris's mural opening.\"",
"\"The speaker kept cutting out whenever someone opened the side door.\"",
"\"I moved closer to the crowd and finished the song anyway.\""
]
},
{
"reaction": "Sofia smiles.",
"dialogue": [
"\"Hazel asked if I was playing again next week.\"",
"\"I said probably, which is how I answer until the booking is confirmed.\"",
"\"She wrote it down anyway.\""
]
},
{
"reaction": "Sofia looks at the table.",
"dialogue": [
"\"Diana sent me the recording from a set I thought had gone badly.\"",
"\"The room sounded better through her mic than it felt from the stage.\"",
"\"I kept one clip for future bookings.\""
]
},
{
"reaction": "Sofia points with one finger.",
"dialogue": [
"\"Hana showed me a song she uses when the room is loud.\"",
"\"It starts quiet enough that people stop talking to hear it.\"",
"\"I borrowed that trick the next night.\""
]
}
]
},
{
"action": "talk_art",
"success": [
"\"I like that ugly green beside the pink. I would not have chosen it, but it makes the pink stand out.\"",
"\"You are right about the rough edge. The cleaner version would probably look less interesting.\"",
"\"It is much bigger than I thought from the photograph. I understand why they gave it the whole wall.\"",
"\"I did not notice the little figure in the corner. That changes the picture for me.\""
],
"failure": [
"\"That could describe half the room. Which part of this piece do you mean?\"",
"\"You have only talked about the frame. What do you think of the picture?\"",
"\"I am not sure I understand. Can you say what you actually liked about it?\"",
"\"Interesting texture is not much of an opinion. Tell me whether you like it.\""
],
"storyPool": [
{
"reaction": "Sofia smiles.",
"dialogue": [
"\"I collect ugly flyers from old shows.\"",
"\"Bad fonts, too many colours, and photos where the singer looks strange.\"",
"\"I keep them in a drawer at home.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"There is a mural near the station that somebody keeps painting over.\"",
"\"Most versions are bad, then one of them turns out good again.\"",
"\"I always look at it when I pass.\""
]
},
{
"reaction": "Sofia grins.",
"dialogue": [
"\"I wore silver lipstick for a show because it looked good under the blue lights.\"",
"\"It got on the microphone, my teeth and the singer who borrowed the mic after me.\"",
"\"I still use it sometimes, but I bring wipes now.\""
]
},
{
"reaction": "Sofia looks down.",
"dialogue": [
"\"A friend sketched me during soundcheck once.\"",
"\"I did not like it because she drew me looking tired.\"",
"\"A week later, I asked if I could keep it.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"I passed a poster outside a club every night for a week before I finally stopped to read it.\"",
"\"The letters were huge and orange, and I could recognise it from the other side of the road.\"",
"\"The event itself was terrible, but I kept the poster.\""
]
},
{
"reaction": "Sofia smiles.",
"dialogue": [
"\"A friend painted the back wall of our rehearsal space with cheap leftover paint.\"",
"\"It looked messy at first.\"",
"\"After a month, everyone had added something to it.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"I buy posters from small shows when I have cash left over.\"",
"\"Most go up crooked because I never measure anything.\"",
"\"I still like seeing them on the wall.\""
]
},
{
"reaction": "Sofia laughs.",
"dialogue": [
"\"Stage clothes look better under lights than in a dressing room.\"",
"\"I learned that after buying something covered in silver pieces.\"",
"\"Under normal light, it looked much worse.\""
]
},
{
"reaction": "Sofia rests her chin on her hand.",
"dialogue": [
"\"Iris asked me to sing at a mural opening behind a delivery yard.\"",
"\"There was wet paint, folding chairs, and one decent speaker.\"",
"\"It was still a good night.\""
]
},
{
"reaction": "Sofia grins.",
"dialogue": [
"\"Iris showed me the wall before she painted it.\"",
"\"I told her the little bird looked like a pigeon.\"",
"\"She kept it and made the pigeon blue.\""
]
},
{
"reaction": "Sofia nods toward the street.",
"dialogue": [
"\"Selene knows which clubs hang local posters instead of throwing them out.\"",
"\"She put one of Iris's flyers behind the bar for me.\"",
"\"It got people to the opening.\""
]
},
{
"reaction": "Sofia looks amused.",
"dialogue": [
"\"Hazel came with me to see Iris's wall after one of my sets.\"",
"\"She kept looking at the painted hands near the corner.\"",
"\"The next day she said she wished she had taken a picture.\""
]
},
{
"reaction": "Sofia lifts her shoulders.",
"dialogue": [
"\"Diana helped me put the mural-opening video online.\"",
"\"I only wanted the song in it.\"",
"\"She kept the wall in because that was the point.\""
]
}
]
},
{
"action": "talk_finance",
"success": [
"\"Yes. A fee can look decent until you subtract the ride home and the share for the band.\"",
"\"That makes sense. I need to know when the venue pays, not only how much.\"",
"\"Exactly. If they cannot pay, I want them to say that before I carry equipment across town.\"",
"\"Putting part of every payment aside for rent is boring, but it stops the end of the month being awful.\""
],
"failure": [
"\"An unpaid show is still unpaid. Calling it an opportunity does not cover the trip there.\"",
"\"Those numbers only work if every ticket sells. That almost never happens.\"",
"\"You have not included rent in the plan. It is due whether I get booked or not.\"",
"\"There is nothing appealing about being broke. It means saying no to work because I cannot afford the journey.\""
],
"storyPool": [
{
"reaction": "Sofia's expression goes practical.",
"dialogue": [
"\"A venue once offered me a fee that sounded good until the organiser listed what I had to provide.\"",
"\"I paid for the ride, replaced a cable and gave the guitarist his share.\"",
"\"I had less than a quarter of the original fee left when I got home, so now I ask what is included before I agree.\""
]
},
{
"reaction": "She rolls her eyes.",
"dialogue": [
"\"A promoter once offered me an unpaid Friday slot because it would be good exposure.\"",
"\"The venue still wanted me to bring my own microphone and pay for the ride there.\"",
"\"I asked whether the bar staff were working for exposure too. He stopped replying.\""
]
},
{
"reaction": "Sofia taps one finger against her arm.",
"dialogue": [
"\"I put cash tips aside before I start buying drinks for people.\"",
"\"I did not used to do that.\"",
"\"Then I went home with no money after a good night.\""
]
},
{
"reaction": "Sofia shrugs.",
"dialogue": [
"\"One venue paid me three weeks late and apologised every time I asked.\"",
"\"The next time they offered me a booking, I asked for half the fee before the show.\"",
"\"They paid it, so I took the booking.\""
]
},
{
"reaction": "Sofia smiles without much humour.",
"dialogue": [
"\"The first time I got paid properly for a set, I bought groceries and paid a bill.\"",
"\"I thought I would buy something for myself.\"",
"\"Instead I bought food for the week.\""
]
}
]
},
{
"action": "talk_photography",
"success": [
"\"Yes, the coloured light is why that picture still looks like the club. Without it, it could be anywhere.\"",
"\"I prefer the one taken before she looked at the camera. Her smile is different.\"",
"\"That angle keeps the stage and the crowd in the shot. I would use that one.\"",
"\"You are right, the signs in the background tell you more about the place than her face does.\""
],
"failure": [
"\"You are only saying she looks attractive. What do you think makes the photograph work?\"",
"\"You have ignored the room. The lights and the crowd are half the reason I like the picture.\"",
"\"That would make a decent profile picture, but it would not show what the night was like.\"",
"\"I would not crop it that tightly. The people behind her are part of the photograph.\""
],
"storyPool": [
{
"reaction": "Sofia nods.",
"dialogue": [
"\"A photographer took pictures during a set under green stage lights once.\"",
"\"Every close-up made me look ill, and the wide shots made the room look empty.\"",
"\"He found one picture from between songs when the lights had changed to red. That was the only one I used.\""
]
},
{
"reaction": "Sofia laughs.",
"dialogue": [
"\"A fan took a picture of me singing with my mouth wide open.\"",
"\"He said it was a good photo.\"",
"\"I did not use it.\""
]
},
{
"reaction": "Sofia shakes her head.",
"dialogue": [
"\"Someone used a flash through my whole set at a tiny bar once.\"",
"\"The pictures made the walls look white, even though the room had been lit blue all night.\"",
"\"I asked him to send the shots without flash instead. They were darker, but they looked like the place.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"After one show, the band lined up for a photograph while everyone was tired and pretending not to be.\"",
"\"The photographer also caught us two minutes later, sitting on the stage and sharing a bottle of water.\"",
"\"We used the second picture because everyone looked more relaxed.\""
]
},
{
"reaction": "Sofia smiles.",
"dialogue": [
"\"A photographer once sent me twenty shots from a show.\"",
"\"The best one had me half hidden behind the microphone stand.\"",
"\"I used it for posters for almost a year.\""
]
}
]
},
{
"action": "talk_cooking",
"success": [
"\"I could make that after a late set. It is quick, and I usually have those ingredients.\"",
"\"Cheap ingredients and one pan are enough to get my attention.\"",
"\"That sounds easy enough to make after midnight without leaving the kitchen wrecked.\"",
"\"I would try that. It is nicer than giving someone instant noodles when they stay over.\""
],
"failure": [
"\"That sounds like too many dishes for a meal I would make after work.\"",
"\"You lost me around the third pan. I would cook something simpler.\"",
"\"I am not going to prepare five lunches in matching containers. I know myself better than that.\"",
"\"Those ingredients cost more than I would spend on dinner. I would order something instead.\""
],
"storyPool": [
{
"reaction": "Sofia laughs.",
"dialogue": [
"\"After a late set, I will eat almost anything.\"",
"\"Noodles from a paper cup, chips from a machine, somebody's leftover fries.\"",
"\"You eat it on the last train and call it dinner.\""
]
},
{
"reaction": "Sofia shrugs.",
"dialogue": [
"\"I can make eggs, toast and instant noodles without leaving the kitchen a mess.\"",
"\"That is about as far as I go.\"",
"\"If a recipe has too many steps, I order food.\""
]
},
{
"reaction": "Sofia shakes her head.",
"dialogue": [
"\"A bar manager tried serving tiny fancy snacks at an opening night.\"",
"\"By midnight everyone was drunk and arguing over three olives.\"",
"\"The next week we put out pizza and nobody complained.\""
]
},
{
"reaction": "Sofia smiles.",
"dialogue": [
"\"My mother makes a bean stew that does not look like much at first.\"",
"\"Then everyone asks for another bowl.\"",
"\"I have tried to copy it, but hers is better.\""
]
},
{
"reaction": "Sofia smiles.",
"dialogue": [
"\"I once made pasta for four people with one saucepan and a kettle.\"",
"\"It was not good pasta.\"",
"\"Nobody went home hungry, though.\""
]
}
]
},
{
"action": "talk_sports",
"success": [
"\"I can understand the footwork. It is closer to learning stage movement than I expected.\"",
"\"The movement makes sense to me. I still do not care much about the score.\"",
"\"I had not thought about the timing between the players. That part is interesting.\"",
"\"Showing me the movement helped. I was not following the explanation on its own.\""
],
"failure": [
"\"I do not follow the sport well enough to understand why that matters.\"",
"\"That sounds exhausting, and I still cannot picture the movement you mean.\"",
"\"I believe you, but I am not interested enough in the score to follow the rest.\"",
"\"If the only interesting part is who wins, this is probably not for me.\""
],
"storyPool": [
{
"reaction": "Sofia nods.",
"dialogue": [
"\"I wore heavy boots for a forty-minute set once because they looked good with the outfit.\"",
"\"By the last three songs my calves were burning, and I had to stop moving around the stage.\"",
"\"Now I rehearse in the shoes before I decide whether to perform in them.\""
]
},
{
"reaction": "Sofia laughs.",
"dialogue": [
"\"I joined a dance class once because I thought it would help on stage.\"",
"\"Everyone else could count to eight without getting lost.\"",
"\"I kept missing the change and stopped going after a month.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"I missed the last bus after a gig and walked home carrying the microphone stand.\"",
"\"It was farther than I thought, and the case kept hitting the back of my leg.\"",
"\"The next morning I checked the night schedule and started packing up earlier.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"A friend taught me stretches for my calves after I kept wearing bad shoes.\"",
"\"I ignored her until stairs hurt.\"",
"\"Then I started doing the stretches.\""
]
},
{
"reaction": "Sofia grins.",
"dialogue": [
"\"I tried a boxing class and spent most of it apologizing to the instructor.\"",
"\"He told me I did not have to say sorry every time I missed.\"",
"\"I missed a lot.\""
]
}
]
},
{
"action": "talk_computers",
"success": [
"\"I understood enough to know it would stop the backing track cutting out. Show me where the setting is.\"",
"\"That would be useful before a show. I would rather test it here than discover the problem on stage.\"",
"\"It makes more sense when you compare it with the sound equipment I already use.\"",
"\"I followed the practical part. You can spare me the rest of the terminology.\""
],
"failure": [
"\"I did not follow that. What am I meant to change on the laptop?\"",
"\"If it needs three new accounts, I am probably going to keep using what I have.\"",
"\"You lost me in the settings. Start again with the thing that is not working.\"",
"\"I still do not know what this would do for me during a show.\""
],
"storyPool": [
{
"reaction": "Sofia frowns.",
"dialogue": [
"\"I lost a recording once because I thought it had uploaded.\"",
"\"It had not uploaded at all.\"",
"\"Now I wait until the little bar finishes before I touch anything.\""
]
},
{
"reaction": "Sofia shakes her head.",
"dialogue": [
"\"Promoters love sending a link that only works on one browser at midnight.\"",
"\"Then they ask why you did not confirm.\"",
"\"I take screenshots of everything now.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"My phone has a folder for every venue, every contact and every payment promise.\"",
"\"I started doing it because people kept saying they did not remember.\"",
"\"Receipts usually fix that.\""
]
},
{
"reaction": "Sofia laughs.",
"dialogue": [
"\"A guy offered to fix my laptop before a show.\"",
"\"He installed three things and changed my wallpaper to a wolf.\"",
"\"The laptop still crashed, so I took it to a repair shop the next day.\""
]
},
{
"reaction": "Sofia looks down.",
"dialogue": [
"\"I keep my demos in two places now.\"",
"\"One bad update taught me that a song can vanish before anyone else hears it.\"",
"\"I lost a week of work that way.\""
]
}
]
},
{
"action": "talk_massage",
"success": [
"\"I do not usually book massages, but starting gently around my neck sounds good.\"",
"\"If it helps with the neck pain after a long set, I would try it.\"",
"\"That sounds practical. My shoulders usually hurt more than my throat after a busy week.\"",
"\"Careful pressure would be fine. I do not want somebody trying to prove how strong their hands are.\""
],
"failure": [
"\"That sounds like an excuse to touch someone, not an explanation of a massage.\"",
"\"Telling me to relax will not help if you start with too much pressure.\"",
"\"I do not think that would help my neck. It sounds uncomfortable.\"",
"\"You have not said where you would start or how hard you would press.\""
],
"storyPool": [
{
"reaction": "Sofia rubs her neck.",
"dialogue": [
"\"I sang four nights in a row once and woke up with my neck so stiff I could barely turn it.\"",
"\"I had rested my voice, but I had spent every set holding my shoulders up.\"",
"\"A warm shower and a day without carrying equipment helped more than whispering all morning.\""
]
},
{
"reaction": "Sofia makes a face.",
"dialogue": [
"\"I tried one of those massage chairs at a mall once.\"",
"\"It pressed too hard on my shoulders.\"",
"\"I got out after three minutes.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"A friend noticed me twisting my rings before a show and took both my hands.\"",
"\"She rubbed my palms while we counted down the five minutes before I went on.\"",
"\"I stopped fidgeting long enough to remember the opening line.\""
]
},
{
"reaction": "Sofia nods.",
"dialogue": [
"\"A friend tried to work a knot out of my shoulder before a show once.\"",
"\"She pressed harder every time I tensed because she thought that meant she had found it.\"",
"\"I made her stop and used a hot towel instead. That helped more.\""
]
},
{
"reaction": "Sofia laughs.",
"dialogue": [
"\"I bought a bottle of fancy oil after a good tip night.\"",
"\"It smelled nice and stained my sheets.\"",
"\"I did not buy it again.\""
]
}
]
}
]
}
END_DIALOGUE_DATA %//% DIALOGUE_DATA
{
"girlId": "g6",
"girl": "Valerie King",
"readyVariable": "dialogue007ready",
"notes": [],
"responses": [
{
"action": "talk_art",
"success": [
"\"Yes. The unfinished corner is the part I keep returning to as well.\"",
"\"The surface is beautiful, but the damaged section underneath is more interesting.\"",
"\"You noticed how little colour the artist used. The darker section would be much weaker if there were more of it.\"",
"\"I had not considered the two figures together. Your reading makes sense.\""
],
"failure": [
"\"That could apply to almost any painting in this room. Which detail do you mean?\"",
"\"You have described the mood, but not what in the painting created it.\"",
"\"I understand that you dislike it. I am asking what you actually noticed.\"",
"\"That is your reaction to it. Look again and tell me which part caused it.\""
],
"storyPool": [
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"A visitor once spent an hour explaining a painting to the artist who made it.\"",
"\"The artist listened politely.\"",
"\"Afterward, she asked me whether he had noticed the signature.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"I nearly rejected a small painting after seeing it only in an email.\"",
"\"When the artist brought it in, I noticed a row of tiny figures along the bottom that the photograph had flattened.\"",
"\"I kept it on my desk for two days before offering her a place in the show.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"An artist brought in a painting with one corner still unfinished.\"",
"\"Everyone told her to fix it.\"",
"\"She left it as it was, and the painting sold first.\""
]
},
{
"reaction": "Valerie shrugs.",
"dialogue": [
"\"An artist once showed me a series of bright plastic flowers that I disliked immediately.\"",
"\"The work was carefully made, and three visitors came back to see it again.\"",
"\"I still would not put one in my home, but I gave the series a wall in the exhibition.\""
]
},
{
"reaction": "Valerie laughs.",
"dialogue": [
"\"A child at an opening pointed at a sculpture and asked why it looked sad.\"",
"\"The artist gave a ten-minute answer.\"",
"\"The child said, 'Okay,' and went back to the snacks.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"An artist once brought in six versions of the same small painting.\"",
"\"We put them on the floor together and compared them.\"",
"\"The first version was still the strongest.\""
]
},
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"A visitor asked whether a piece was supposed to be funny.\"",
"\"The artist said no, then laughed when the visitor left.\"",
"\"She changed the title card the next morning because she realised the old title made it sound much more serious.\""
]
},
{
"reaction": "Valerie looks down.",
"dialogue": [
"\"I took an artist to see a space before she agreed to show there.\"",
"\"She spent ten minutes looking at the ceiling and the windows.\"",
"\"Then she said yes because she knew where the large work would go.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"A gallery received letters from a school class after an exhibition.\"",
"\"Most were drawings of the largest sculpture.\"",
"\"We kept them in a folder with the show notes.\""
]
},
{
"reaction": "Valerie folds her hands.",
"dialogue": [
"\"Iris brought in a portfolio with two strong pieces buried near the end.\"",
"\"I moved them to the front and told her not to apologise for them.\"",
"\"She looked surprised that this was practical advice.\""
]
},
{
"reaction": "Valerie glances toward the wall.",
"dialogue": [
"\"Keira photographed an opening while I dealt with a donor who wanted every painting explained.\"",
"\"Her pictures caught the room after he left.\"",
"\"Those were the ones I kept.\""
]
},
{
"reaction": "Valerie nods once.",
"dialogue": [
"\"Mina helped me sort old exhibition catalogues.\"",
"\"She found three copies of one show and none of another.\"",
"\"We spent an hour calling former artists.\""
]
},
{
"reaction": "Valerie touches the edge of her sleeve.",
"dialogue": [
"\"Hana played at an opening where the air conditioning failed.\"",
"\"Everyone was too warm and pretending not to be.\"",
"\"Her set gave people a reason to stay.\""
]
},
{
"reaction": "Valerie looks mildly resigned.",
"dialogue": [
"\"Clara once asked for the opening plan two weeks early.\"",
"\"I gave her a list, then changed half of it.\"",
"\"She now waits until I stop rearranging the room.\""
]
},
{
"reaction": "Valerie pauses.",
"dialogue": [
"\"Iris showed me a small drawing of a bus stop.\"",
"\"One person was checking the timetable while another held a torn shopping bag.\"",
"\"I asked Iris to draw three more bus stops before we decided whether to show the series.\""
]
},
{
"reaction": "Valerie adjusts a cuff.",
"dialogue": [
"\"Keira wanted to photograph a sculpture by the window.\"",
"\"I moved it six inches and the glare disappeared.\"",
"\"The photograph was usable after that.\""
]
},
{
"reaction": "Valerie looks briefly amused.",
"dialogue": [
"\"Mina scanned a stack of old invitations for us.\"",
"\"One had the wrong year printed on it.\"",
"\"We found out the night before an anniversary show.\""
]
}
]
},
{
"action": "talk_photography",
"success": [
"\"I looked at her face first, but you are right about the hand. She is gripping the chair.\"",
"\"Yes. The side light shows every line in her face, and she still chose that photograph.\"",
"\"I would keep the empty chair in the crop. It explains who she is looking toward.\"",
"\"You noticed that she turns away from the camera in every other frame. This one is different.\""
],
"failure": [
"\"Expensive lighting can still produce a poor portrait. Look at how uncomfortable she is.\"",
"\"You have not mentioned her hands. They are the first thing I noticed.\"",
"\"You are describing the camera. I asked what you thought of the photograph.\"",
"\"She is beautiful, yes. What else does the picture tell you about her?\""
],
"storyPool": [
{
"reaction": "Valerie nods.",
"dialogue": [
"\"We photographed an artist's studio after she had cleared every tool from the table.\"",
"\"The room looked neat, but it did not look like a working studio anymore.\"",
"\"We put the brushes and two paint-stained jars back before taking the final picture.\""
]
},
{
"reaction": "Valerie frowns.",
"dialogue": [
"\"An intern photographed a sculpture from the only side that made it look flat.\"",
"\"The object had taken six months to build.\"",
"\"I asked her to walk around it before taking another photo.\""
]
},
{
"reaction": "Valerie thinks about it.",
"dialogue": [
"\"A photographer sent me a portrait where half the artist's face was hidden by the studio door.\"",
"\"The cleaner photographs looked like publicity shots. That one looked like the woman I had spent the afternoon with.\"",
"\"She chose it for the catalogue without asking for another version.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"An editor cropped the empty side of a portrait to make the artist larger on the page.\"",
"\"Unfortunately, that removed the half-finished canvas she had been looking at.\"",
"\"We restored the wider version before the catalogue went to print.\""
]
},
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"A collector wanted a painting photographed against white because it would look cleaner online.\"",
"\"The work was made to hang in a dark room.\"",
"\"I used a darker wall for the photographs instead.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"I photographed a painting after the artist had varnished it.\"",
"\"The lights reflected across the surface and hid half the image.\"",
"\"We moved the lights instead of editing the reflection later.\""
]
},
{
"reaction": "Valerie frowns.",
"dialogue": [
"\"An assistant took a perfect photo of a frame and almost none of the work inside it.\"",
"\"She had used the widest lens in the room.\"",
"\"We took it again with a different lens.\""
]
},
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"An artist sent me a progress photo from her studio.\"",
"\"There were paint cans and tools all over the floor.\"",
"\"I liked it more than the finished publicity shot.\""
]
},
{
"reaction": "Valerie speaks evenly.",
"dialogue": [
"\"Keira knows not to use flash near the smaller works.\"",
"\"She brings a light, tests it, and gets out of the way.\"",
"\"That is why I keep calling her.\""
]
},
{
"reaction": "Valerie looks thoughtful.",
"dialogue": [
"\"Iris once watched Keira photograph an opening from the stairs.\"",
"\"She later sent me a picture of the same room from outside.\"",
"\"It was the better image.\""
]
},
{
"reaction": "Valerie gives a small nod.",
"dialogue": [
"\"Clara wanted photos of a launch before the guests arrived.\"",
"\"Keira had ten minutes and a blocked entrance.\"",
"\"She leaned over the stair rail and got the tables, banner and first guests into the same shot.\""
]
},
{
"reaction": "Valerie brushes a speck from her sleeve.",
"dialogue": [
"\"Hana asked Keira for one usable picture after a gallery set.\"",
"\"Keira caught her tuning between songs instead.\"",
"\"Hana used that one for the poster.\""
]
},
{
"reaction": "Valerie looks at the floor.",
"dialogue": [
"\"Mina found an old gallery photograph with no date on it.\"",
"\"Keira recognised the window display in the background.\"",
"\"We narrowed it down to one winter.\""
]
}
]
},
{
"action": "talk_finance",
"success": [
"\"That is practical. The artist still needs to be paid before I call the exhibition successful.\"",
"\"Yes. The invoice and payment date need to be agreed before the work arrives.\"",
"\"That risk is manageable. I would insure the larger pieces and accept the cost.\"",
"\"I agree. Keeping enough money for rent and transport is not greed. It keeps the gallery open.\""
],
"failure": [
"\"A discount for a wealthy collector is still a discount. I would rather pay the artist properly.\"",
"\"You are treating an uncertain sale as if the money were already available.\"",
"\"The plan depends on every piece selling during the first week. That is not realistic.\"",
"\"I understand the proposal, but the expected income is much too optimistic.\""
],
"storyPool": [
{
"reaction": "Valerie nods.",
"dialogue": [
"\"We sold a large painting for more than anything else in that exhibition.\"",
"\"After paying the artist, transport, insurance, framing and tax, the gallery's share covered less than a month of rent.\"",
"\"The sale was still worthwhile, but the price on the red sticker was not our profit.\""
]
},
{
"reaction": "Valerie looks down.",
"dialogue": [
"\"An artist once asked whether she should lower every price because nothing sold that month.\"",
"\"I told her to wait another month before changing everything.\"",
"\"She did, and two pieces sold the next month.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"I nearly spent the insurance reserve on new lighting before an exhibition.\"",
"\"A transport company damaged a frame the following week, and the claim took a month to settle.\"",
"\"The reserve paid for the repair while we waited, so the old lights stayed for another season.\""
]
},
{
"reaction": "Valerie shrugs.",
"dialogue": [
"\"A donor once asked for a discount because he said he was supporting culture.\"",
"\"He was buying a painting for his second home.\"",
"\"I told him the price was the price.\""
]
},
{
"reaction": "Valerie looks down.",
"dialogue": [
"\"My aunt taught me to pay artists when I said I would.\"",
"\"Not when the invoice is convenient or the next sale arrives.\"",
"\"Some months are tight, but I still do it.\""
]
}
]
},
{
"action": "talk_music",
"success": [
"\"I had not noticed how long the pause was before the piano returned. It works better because of that.\"",
"\"Yes. If that note came in any earlier, it would interrupt the singer.\"",
"\"Comparing the two sections helped. The second one is much less crowded.\"",
"\"I can hear how carefully the instruments are arranged. None of them is fighting the vocal.\""
],
"failure": [
"\"Making it louder would not improve the part I dislike.\"",
"\"I do not hear that in the song. Which section are you talking about?\"",
"\"You keep calling it energetic, but I want to know what changed in the music.\"",
"\"There is too much happening at once for me to follow the part you mean.\""
],
"storyPool": [
{
"reaction": "Valerie nods.",
"dialogue": [
"\"A DJ played an opening much louder than we had agreed once.\"",
"\"Guests had to shout beside the smaller paintings, and one artist left before the speeches.\"",
"\"I lowered the volume myself and started putting a limit in the event notes after that.\""
]
},
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"One artist insisted on a seven-minute recording of waves for her exhibition.\"",
"\"A guest asked when the real music would begin.\"",
"\"The artist heard him and laughed.\""
]
},
{
"reaction": "Valerie looks down.",
"dialogue": [
"\"I had piano lessons as a child.\"",
"\"I spent too much time practising scales and avoided the difficult pieces.\"",
"\"Then I stopped going.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"I booked a string duo for an opening in a room with concrete walls.\"",
"\"They moved into a corner after the first song because the sound was carrying farther than expected.\"",
"\"From there, people could still hear them without shouting over them.\""
]
},
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"There is a song my aunt played while hanging shows after closing.\"",
"\"I disliked it for years because it meant more work.\"",
"\"Now I hear it and remember helping her check the labels.\""
]
}
]
},
{
"action": "talk_cooking",
"success": [
"\"That sounds manageable. I could prepare it before guests arrive and heat it later.\"",
"\"The practical version is much more useful to me. I do not need the decorative garnish.\"",
"\"I understand why the timing matters now. I had been putting everything into the pan together.\"",
"\"Keeping the plate simple makes sense. The food should still be warm when it reaches the table.\""
],
"failure": [
"\"That sounds like too many pans for a dinner I would make after work.\"",
"\"I am not spending forty minutes on a sauce. I would choose a simpler recipe.\"",
"\"You have made dinner sound more complicated than it needs to be.\"",
"\"I stopped following around the third separate preparation.\""
],
"storyPool": [
{
"reaction": "Valerie answers after a second.",
"dialogue": [
"\"Gallery openings taught me that bad catering can spoil an otherwise good night.\"",
"\"Once, someone served tiny spoons of cold soup beside a sculpture exhibition.\"",
"\"People stood around with the spoons and did not know what to do with them.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"My aunt made roast vegetables with too much rosemary.\"",
"\"I complained every time.\"",
"\"I still make them that way when I am tired.\""
]
},
{
"reaction": "Valerie shrugs.",
"dialogue": [
"\"I can make roast vegetables, pasta and one kind of soup without checking a recipe.\"",
"\"I tried making fish for a guest once and spent the whole meal wondering whether it was cooked.\"",
"\"I have served pasta to guests ever since.\""
]
},
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"An artist once insisted on cooking for an opening instead of hiring help.\"",
"\"The work was excellent. The risotto was paste.\"",
"\"People praised the food because they wanted to buy a painting.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"Food is usually better when somebody has cooked it more than once.\"",
"\"You can tell when they know what they are doing before it reaches the plate.\"",
"\"I usually stick to things I have made before.\""
]
}
]
},
{
"action": "talk_sports",
"success": [
"\"I still do not care about the score, but the way she shifts her weight is interesting.\"",
"\"I understand it better now that you have shown me the movement.\"",
"\"The amount of practice makes sense to me. I could do without the shouting from the crowd.\"",
"\"That explanation helped. I had not realised how much balance the movement required.\""
],
"failure": [
"\"You lost me. I do not know the rules well enough to follow that example.\"",
"\"I understand that it is difficult. I still do not understand what makes that part enjoyable.\"",
"\"I cannot picture the movement from that explanation. Show me what you mean.\"",
"\"This is probably not my subject. I do not have a useful opinion on it.\""
],
"storyPool": [
{
"reaction": "Valerie thinks about it.",
"dialogue": [
"\"A delivery arrived without the extra porter we had booked, and the lift was out of service.\"",
"\"The driver and I carried three plinths up two flights of stairs before the installers arrived.\"",
"\"I had to change shirts before the opening and could still feel it in my arms the next morning.\""
]
},
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"A collector once told me he ran marathons, then asked two interns to move a small sculpture.\"",
"\"They were both half his size.\"",
"\"They moved it while he watched.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"I took up swimming for a while.\"",
"\"It was quiet, repetitive, and nobody asked me about work.\"",
"\"I kept it up for a few months.\""
]
},
{
"reaction": "Valerie frowns.",
"dialogue": [
"\"A yoga instructor told me to empty my mind.\"",
"\"I had a budget meeting at nine and could not do that.\"",
"\"I did the stretches anyway.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"I walk through the gallery before every opening and check each room from the doorway.\"",
"\"Last month I found a cleaning cloth still sitting on the base of a sculpture.\"",
"\"I removed it two minutes before the first guests came in.\""
]
}
]
},
{
"action": "talk_computers",
"success": [
"\"I understood enough to see how it would help. Show me where the backup is stored.\"",
"\"A digital archive still needs maintenance. Files disappear just as easily as paper if nobody checks them.\"",
"\"If it prevents us losing the catalogue again, I am willing to learn the system.\"",
"\"Thank you for explaining what it does before giving me the technical details.\""
],
"failure": [
"\"I did not understand that. What am I supposed to do when the error appears?\"",
"\"You lost me in the menus. Start again with the setting I need to change.\"",
"\"The interface sounds needlessly complicated. Is there a simpler way to do it?\"",
"\"I would rather keep the paper copy than depend on a system nobody here can explain.\""
],
"storyPool": [
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"The mailing list software once sent an invitation with the artist's name replaced by a broken tag.\"",
"\"Two hundred people received an opening announcement for '{name}'.\"",
"\"The artist was not amused.\""
]
},
{
"reaction": "Valerie frowns.",
"dialogue": [
"\"I scan old catalogues because the paper does not last forever.\"",
"\"Then the scanner decides a grey pencil line is dust and removes it.\"",
"\"I have to check every page before I save it.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"A designer rebuilt the gallery website and hid every price behind a separate information page.\"",
"\"Visitors started emailing us to ask how much basic prints cost.\"",
"\"We put the prices and contact button back beside each work the following week.\""
]
},
{
"reaction": "Valerie sighs.",
"dialogue": [
"\"A password failed ten minutes before an opening.\"",
"\"The guest list was inside the system and the door staff were already waiting.\"",
"\"I now keep a printed list in a drawer.\""
]
},
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"One intern renamed every image file 'final.'\"",
"\"There were eighty-seven finals by the time I noticed.\"",
"\"I made her sort them before she went home.\""
]
}
]
},
{
"action": "talk_massage",
"success": [
"\"That technique sounds specific enough to try. Starting at my shoulders would be best.\"",
"\"That might help. I spend too much of the day standing in the gallery.\"",
"\"I understand what you mean now that you have explained where your hands would go.\"",
"\"Yes. If the muscle tightens under your hand, pressing harder will not help.\""
],
"failure": [
"\"That sounds like an excuse to touch someone, not a massage technique.\"",
"\"Telling me to relax is not useful if you have already started too hard.\"",
"\"Be more specific. Where would you put your hands, and how much pressure would you use?\"",
"\"I still do not understand what you would actually do to the sore muscle.\""
],
"storyPool": [
{
"reaction": "Valerie frowns.",
"dialogue": [
"\"I booked a massage after installing an exhibition by myself.\"",
"\"The therapist kept asking personal questions.\"",
"\"My shoulders were the reason I was there.\""
]
},
{
"reaction": "Valerie rubs the base of her neck.",
"dialogue": [
"\"I wore new shoes to an opening and spent four hours standing beside the entrance.\"",
"\"By the time the last guest left, my neck and lower back hurt more than my feet.\"",
"\"I took a warm shower, put the shoes in the back of the wardrobe and wore flats for the next event.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"A therapist once asked me to rate the pressure before she started, then never asked again.\"",
"\"It became uncomfortable halfway through, and I had to interrupt her twice before she eased off.\"",
"\"Now I say something immediately instead of waiting for the person to notice.\""
]
},
{
"reaction": "Valerie smiles.",
"dialogue": [
"\"A friend bought me scented oil with a name like a wine tasting note.\"",
"\"It smelled expensive and did nothing at all.\"",
"\"I kept the bottle because it looked nice.\""
]
},
{
"reaction": "Valerie nods.",
"dialogue": [
"\"An artist I know massages her own hands before she works.\"",
"\"She says it stops them from cramping halfway through the day.\"",
"\"I started doing it before installing a show.\""
]
}
]
}
]
}
END_DIALOGUE_DATA %//% DIALOGUE_DATA
{
"girlId": "g7",
"girl": "Hazel Mercer",
"readyVariable": "dialogue008ready",
"notes": [],
"responses": [
{
"action": "talk_cooking",
"success": [
"\"That makes sense. I like when food is simple enough that tired people can still make it.\"",
"\"Oh, I know that part. We do the same thing at work when there is not much time before service.\"",
"\"I never think of it that clearly, but yes. That is why timing matters so much.\"",
"\"People forget how much preparation happens before the first order. You explained that well.\""
],
"failure": [
"\"Maybe, but I think the onions need longer before you add the tomatoes.\"",
"\"I followed you until the sauce. How much are you adding?\"",
"\"That is more complicated than I would make it. I would leave out the second pan.\"",
"\"I mostly help with preparation, but I am fairly sure that oven is too hot.\""
],
"storyPool": [
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"The first thing I learned at work was how to chop onions without covering the counter in scraps.\"",
"\"I was proud enough to call my sister about it.\"",
"\"She laughed, but she let me talk about it.\""
]
},
{
"reaction": "Hazel laughs.",
"dialogue": [
"\"I make pancakes when I have a morning off.\"",
"\"The first one is always wrong, so I eat it by the stove.\"",
"\"Then I make the rest. They usually turn out better.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"A cook showed me how to taste soup with a clean spoon every time.\"",
"\"It seemed obvious once she said it, but nobody had explained it to me before.\"",
"\"When a new coworker reused the same spoon a week later, I showed her where we kept the clean ones.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"My grandmother made a potato bake with too much cheese.\"",
"\"Everyone complained that it was too rich, then took seconds.\"",
"\"I make it when family comes over.\""
]
},
{
"reaction": "Hazel shakes her head.",
"dialogue": [
"\"A cook left me in charge of the oven for ten minutes during a busy lunch.\"",
"\"I did not know all the recipes, but I could see that one tray needed longer and another was starting to dry out.\"",
"\"He came back before anything burned and let me watch the oven again the next day.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"I learned to make scrambled eggs from one of the cooks at work.\"",
"\"He told me to take them off the heat before they looked done.\"",
"\"The first time I did it, they were much better.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"I made a tray of brownies for my sister once.\"",
"\"I forgot the timer and checked them every two minutes instead.\"",
"\"They were fine, but I could not relax until they cooled.\""
]
},
{
"reaction": "Hazel laughs.",
"dialogue": [
"\"Someone brought too many oranges to work after a family visit.\"",
"\"We used them in a cake because nobody wanted to take them home.\"",
"\"It sold out before lunch.\""
]
},
{
"reaction": "Hazel thinks about it.",
"dialogue": [
"\"My aunt makes soup from leftover rice and vegetables.\"",
"\"It changes every time because she uses whatever is in the fridge.\"",
"\"I ask for the recipe, but she never measures anything.\""
]
},
{
"reaction": "Hazel smiles nervously.",
"dialogue": [
"\"Maya gave me the ends of a loaf after breakfast service.\"",
"\"I made crumbs, then forgot to label the container.\"",
"\"She found it before anyone used them in the wrong dish.\""
]
},
{
"reaction": "Hazel wrings her hands once.",
"dialogue": [
"\"Olivia showed me how to make a big tray of pasta without it drying out.\"",
"\"I kept worrying it would stick together.\"",
"\"She told me to stop stirring it every ten seconds.\""
]
},
{
"reaction": "Hazel looks down.",
"dialogue": [
"\"Mina studies at Maya's cafe and always orders the same soup.\"",
"\"I asked if it was boring.\"",
"\"She said she did not have to decide what to eat.\""
]
},
{
"reaction": "Hazel brightens.",
"dialogue": [
"\"Sofia came in after a late set and wanted whatever was fastest.\"",
"\"Maya had soup, and I found bread and butter.\"",
"\"Sofia said it beat the noodles she usually gets after singing.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"Maya lets me taste the soup before it goes out.\"",
"\"Last week it needed lemon, not more salt.\"",
"\"I only knew because she made me taste it twice.\""
]
},
{
"reaction": "Hazel sits a little straighter.",
"dialogue": [
"\"Olivia needed food for a small event and asked what could sit out safely.\"",
"\"I packed roasted vegetables and little sandwiches.\"",
"\"She sent me a picture later. The sandwiches were gone first.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"Mina brought a stack of library flyers into the cafe.\"",
"\"I traded her a muffin for help spelling a dish name.\"",
"\"She fixed it without making me feel stupid.\""
]
},
{
"reaction": "Hazel laughs quietly.",
"dialogue": [
"\"Maya was testing a new cake and asked me to cut it into even pieces.\"",
"\"Mine were not even.\"",
"\"She used them anyway and told me to take the smallest one.\""
]
}
]
},
{
"action": "talk_music",
"success": [
"\"Yes. That is exactly it. Some songs make a shift feel less heavy.\"",
"\"I like that. Music does not have to be important to help.\"",
"\"That part would keep me going while cleaning up. I can tell.\"",
"\"I had not noticed how the song changes after the first chorus. I like the quieter part better.\""
],
"failure": [
"\"Maybe, but I do not hear the change you mean. Which part should I listen for?\"",
"\"I do not know the technical terms. Can you play the section again?\"",
"\"That might be true. I was paying more attention to the singer.\"",
"\"I lost the point a little. Are you talking about the rhythm or the lyrics?\""
],
"storyPool": [
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"There is a song that comes on during breakfast prep all the time.\"",
"\"Everyone says they hate it.\"",
"\"Everyone knows the chorus anyway.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"I hummed the same chorus through an entire closing shift once.\"",
"\"One of the cooks started singing the next line every time I reached it.\"",
"\"By the time we finished the dishes, everyone in the kitchen had joined in at least once.\""
]
},
{
"reaction": "Hazel laughs.",
"dialogue": [
"\"I misheard a lyric for years and sang the wrong words at work.\"",
"\"A coworker finally corrected me.\"",
"\"I still sing my version sometimes.\""
]
},
{
"reaction": "Hazel thinks about it.",
"dialogue": [
"\"I heard one of Sofia's songs twice at a small show and remembered the chorus on the walk home.\"",
"\"I searched for it using the only line I could remember and found the wrong song three times.\"",
"\"Sofia sent me the right recording the next morning.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"My sister makes playlists for cleaning the flat.\"",
"\"They are all songs we liked when we were younger.\"",
"\"We take longer, but the flat is nicer when we finish.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"The kitchen radio plays the same station every morning.\"",
"\"There is one song that always comes on while we are setting up.\"",
"\"I know it is time to start the coffee when I hear it.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"My sister puts music on while she does laundry.\"",
"\"She says it makes folding clothes less boring.\"",
"\"I help her sometimes, so I know the whole playlist.\""
]
},
{
"reaction": "Hazel laughs.",
"dialogue": [
"\"A cook once sang the wrong words to a song for a whole shift.\"",
"\"Nobody corrected him until he asked why everyone was laughing.\"",
"\"He still sings it that way now.\""
]
},
{
"reaction": "Hazel tucks her hair behind her ear.",
"dialogue": [
"\"I went to one of Sofia's Tuesday sets after work.\"",
"\"I almost left after the first song because I was tired.\"",
"\"Then she sang the one I recognised and I stayed until the end.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"Maya plays old records while we clean the cafe.\"",
"\"She knows every chorus and sings the wrong words on purpose.\"",
"\"I know she does it on purpose because I checked.\""
]
},
{
"reaction": "Hazel glances up.",
"dialogue": [
"\"Mina asked if I could help set up chairs for a library music group.\"",
"\"Hana came in with a case bigger than she was.\"",
"\"The children clapped before she had even played anything.\""
]
},
{
"reaction": "Hazel looks amused.",
"dialogue": [
"\"Olivia puts the kitchen radio on during prep.\"",
"\"When Sofia's song came on, she said she had seen her play at the club.\"",
"\"I had not realised it was the same person.\""
]
},
{
"reaction": "Hazel lowers her voice.",
"dialogue": [
"\"Sofia waved at me from the stage once, which made me look behind me.\"",
"\"There was nobody else there.\"",
"\"I spent the next song trying not to look too pleased.\""
]
}
]
},
{
"action": "talk_art",
"success": [
"\"Oh, I had not noticed the blue under the paint. It makes the flowers stand out.\"",
"\"That explanation helps. I was a little intimidated by the title.\"",
"\"I did not notice the small figure near the edge until you pointed it out.\"",
"\"I understand what you mean when you show me the part you are talking about.\""
],
"failure": [
"\"Maybe. I am not very good at the terminology. Which part do you mean?\"",
"\"I understand the feeling you mean, but I cannot see it in this piece.\"",
"\"I like looking at it, although not for the reason you gave.\"",
"\"I did not follow that explanation. Could you say it more simply?\""
],
"storyPool": [
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"A child drew flowers on the kitchen noticeboard once.\"",
"\"The chef wanted to wipe it off because it looked messy.\"",
"\"I copied it onto a clean sheet before he did.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"My sister bought me a handmade mug from a weekend market.\"",
"\"The handle is slightly crooked, so it only feels comfortable in my left hand.\"",
"\"I use it every morning and give guests the matching one that sits properly.\""
]
},
{
"reaction": "Hazel laughs.",
"dialogue": [
"\"I tried painting a plant pot for my window.\"",
"\"The paint ran when I watered the plant.\"",
"\"It looks worse now, but I still use it.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"There is a chalkboard menu at work that one cook draws on.\"",
"\"She puts tiny pictures beside the specials.\"",
"\"People order the one with the nicest drawing more often.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"My sister makes cards instead of buying them.\"",
"\"They are not very neat, but she makes one for everyone.\"",
"\"I keep mine in a tin at home.\""
]
}
]
},
{
"action": "talk_photography",
"success": [
"\"I like that one. She looks comfortable because she has forgotten about the camera.\"",
"\"Oh, yes. The window light is much softer than the flash in the other picture.\"",
"\"I saw that too, but I did not know how to explain it. Her hands look relaxed.\"",
"\"I had not noticed the cup at the edge. It makes the table look like someone had just left it.\""
],
"failure": [
"\"Maybe. I usually pay more attention to the people in a photograph than the camera settings.\"",
"\"I do not know much about cameras, sorry.\"",
"\"That might be right. I think I missed the detail.\"",
"\"I am not sure I can tell the difference, but I like listening to you try.\""
],
"storyPool": [
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"My cousin took a photograph of me at a wedding when I did not know.\"",
"\"I was laughing at something off to the side.\"",
"\"It is the only picture of myself that I really like.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"I take pictures of the dessert counter when it is finished.\"",
"\"I use some of them to remember what we put out.\"",
"\"I also like how clean it looks before people start choosing.\""
]
},
{
"reaction": "Hazel laughs.",
"dialogue": [
"\"I tried taking a picture of my cat once.\"",
"\"She moved every time I pressed the button.\"",
"\"I have twelve blurry pictures of one ear.\""
]
},
{
"reaction": "Hazel thinks about it.",
"dialogue": [
"\"I took a picture of my sister's coat on a chair while she was visiting.\"",
"\"She had already gone home by the time I noticed it was still there.\"",
"\"I sent her the picture, and she came back for the coat the next morning.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"My phone has too many pictures of food.\"",
"\"Sometimes I use them to remember which display sold well.\"",
"\"Mostly I forget to delete them.\""
]
}
]
},
{
"action": "talk_sports",
"success": [
"\"That sounds manageable. I could fit a short walk into the days I work.\"",
"\"Moving carefully makes sense. I would rather learn the position before adding weight.\"",
"\"Maybe I could try a beginner class if the instructor explains things calmly.\"",
"\"Starting with the easier version would help. I would be less worried about doing it wrong.\""
],
"failure": [
"\"I do not know the rules well enough to follow that example.\"",
"\"That sounds too tiring for a beginner routine. Is there a shorter version?\"",
"\"I would need somebody to show me how to hold the ball first.\"",
"\"I understand the goal, but I would be out of breath before the second round.\""
],
"storyPool": [
{
"reaction": "Hazel laughs.",
"dialogue": [
"\"I joined a school running club once because my friend did.\"",
"\"She got fast. I mostly got cold.\"",
"\"We still walked home together after, so I kept going for a while.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"I started walking to work after the morning bus was late three times in one week.\"",
"\"The walk takes ten minutes longer, but I know exactly when I will arrive.\"",
"\"I still take the bus when it rains. I am not that committed.\""
]
},
{
"reaction": "Hazel laughs.",
"dialogue": [
"\"A coworker tried to teach me how to use a rowing machine.\"",
"\"I pulled too hard and nearly slid off the seat.\"",
"\"She did not make a big deal of it, which helped.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"Carrying boxes all morning makes you stronger whether you meant to train or not.\"",
"\"One of the cooks showed me how to hold them close to my body.\"",
"\"I learned after I dropped a box of bottles.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"My back hurt after we moved boxes into the storeroom, so I found a ten-minute stretching video.\"",
"\"I could not do the last position and stayed on the floor until the instructor finished talking.\"",
"\"The easier stretches helped, so I still use the first half of the video.\""
]
}
]
},
{
"action": "talk_computers",
"success": [
"\"Oh, that would help. We keep losing the order list when the tablet freezes.\"",
"\"I think I followed that. Let me write the steps down before I forget them.\"",
"\"If it warns us before the storage is full, I would like to have it.\"",
"\"I would probably still ask for help the first time, but I understand what it does.\""
],
"failure": [
"\"Sorry, I got lost after the first menu. Can you show me where to click?\"",
"\"I would worry about changing the wrong setting. Is there a way to undo it?\"",
"\"I believe you, but I still do not understand what the program would do for us.\"",
"\"That sounds important. I would need the steps written down before I tried it alone.\""
],
"storyPool": [
{
"reaction": "Hazel frowns.",
"dialogue": [
"\"The kitchen tablet froze during breakfast once.\"",
"\"We wrote the orders on paper until somebody restarted it.\"",
"\"It was slower, but we got through breakfast.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"I made a spreadsheet for the cleaning supplies because we kept running out of towels.\"",
"\"The first one was a mess.\"",
"\"The second one worked, and we stopped running out.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"My cousin showed me how to save recipes in folders.\"",
"\"Before that I had thirty screenshots mixed in with pictures of my cat.\"",
"\"It is easier to find things now.\""
]
},
{
"reaction": "Hazel looks embarrassed.",
"dialogue": [
"\"I clicked a link once because it said I had won a kitchen mixer.\"",
"\"I had not entered anything.\"",
"\"Nothing happened, but I changed my passwords after that.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"The manager moved the rota into a new app without telling the kitchen staff where to find it.\"",
"\"Three of us took screenshots because we were worried it would disappear again.\"",
"\"Now there is a link beside the order list, which is much easier.\""
]
}
]
},
{
"action": "talk_finance",
"success": [
"\"Putting the bus fare aside first makes sense. Then I know I can get to work.\"",
"\"I like that you kept it simple. Money is easier for me when I can see the weekly amount.\"",
"\"Planning one month at a time sounds much less intimidating than planning the whole year.\"",
"\"I should check my regular payments more often. I tend to notice them only when money is tight.\""
],
"failure": [
"\"Money talk makes my stomach feel weird, sorry.\"",
"\"I think I understand, but I also think I am nervous now.\"",
"\"I would need that written down so I could go through the numbers one at a time.\"",
"\"I do not understand that part yet. Start with how much I would need to save each week.\""
],
"storyPool": [
{
"reaction": "Hazel nods.",
"dialogue": [
"\"I started saving cash in a jar for new work shoes.\"",
"\"Then my old shoes split during a shift, and I bought the new pair that week.\"",
"\"It took a while to save it, but I was glad I had.\""
]
},
{
"reaction": "Hazel shrugs.",
"dialogue": [
"\"I used to buy lunch every day because I was too tired to plan.\"",
"\"Then I added it up one month.\"",
"\"Now I bring food from home more often.\""
]
},
{
"reaction": "Hazel looks down.",
"dialogue": [
"\"A manager once forgot two hours on my pay.\"",
"\"I nearly said nothing because I did not want to cause trouble.\"",
"\"My sister told me to ask. They fixed it.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"The last bus was cancelled after a closing shift once, and I had almost no money left for a taxi.\"",
"\"One of the cooks lent me the fare and waited until the car arrived.\"",
"\"Since then I have kept enough money for the ride home in a separate part of my purse.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"I bought the cheapest work shoes I could find and wore through the sole in two months.\"",
"\"My grandmother helped me pay for a better pair and made me compare the stitching before we left the shop.\"",
"\"They cost almost twice as much, but I have had them for over a year.\""
]
}
]
},
{
"action": "talk_massage",
"success": [
"\"That sounds nice. Starting gently would make it much easier for me to relax.\"",
"\"I would prefer that. I get tense if somebody starts with firm pressure.\"",
"\"A warm towel first sounds good, especially after a long shift.\"",
"\"If you checked the pressure as you went, I think I would be comfortable with it.\""
],
"failure": [
"\"Maybe. I get nervous if touch feels too sudden.\"",
"\"I think I would need it slower than that.\"",
"\"You are describing a lot of pressure. I would want you to start more gently.\"",
"\"I would rather you ask how it feels before pressing any harder.\""
],
"storyPool": [
{
"reaction": "Hazel rubs one wrist.",
"dialogue": [
"\"My wrists get sore after peeling and chopping for hours.\"",
"\"One of the older cooks showed me how to rub them with hand cream.\"",
"\"After a few minutes, I could hold the peeler without the same ache in my thumb.\""
]
},
{
"reaction": "Hazel laughs.",
"dialogue": [
"\"I tried a massage chair at the station once.\"",
"\"It was too strong, but I was too shy to get out straight away.\"",
"\"I sat there for five minutes waiting for it to end.\""
]
},
{
"reaction": "Hazel nods.",
"dialogue": [
"\"One of the cooks wrapped a warm towel around my wrist after a long prep shift.\"",
"\"She waited a few minutes before showing me how to rub the sore part.\"",
"\"It helped enough that I started keeping a spare towel near the sink.\""
]
},
{
"reaction": "Hazel smiles.",
"dialogue": [
"\"A friend gave me a shoulder massage after a long shift.\"",
"\"I kept telling her she did not have to.\"",
"\"I was glad she kept going.\""
]
},
{
"reaction": "Hazel looks embarrassed.",
"dialogue": [
"\"I used to think I needed to book a proper massage whenever my hands hurt.\"",
"\"An older cook showed me a few simple movements with hand cream after work.\"",
"\"Most days I do those at home and save the money.\""
]
}
]
}
]
}
END_DIALOGUE_DATA %/This generic bank stores spoken lines only. Every line should be exactly what a girl says.
/% DIALOGUE_BANK
{
"admire_outfit_failure": [
"\"Do not stare.\"",
"\"You are being obvious.\"",
"\"That is enough looking.\"",
"\"You can stop looking now.\"",
"\"Keep your eyes polite.\""
],
"admire_outfit_success": [
"\"You actually noticed.\"",
"\"That part was intentional.\"",
"\"Careful. You are looking very openly.\"",
"\"I did choose it for a reason.\"",
"\"Okay, you have some taste.\""
],
"against_wall_failure": [
"\"No. Not that.\"",
"\"No. Not against the wall.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Back up. I don't want this pressed against the wall.\""
],
"against_wall_success": [
"\"Against the wall... fuck.\"",
"\"Hold me up.\"",
"\"Do not drop me.\"",
"\"Keep it steady.\"",
"\"That is intense.\""
],
"anal_anal_position_switch_failure": [
"\"No. Stop there.\"",
"\"Not like that.\"",
"\"Too sudden. Stop moving.\"",
"\"No, not that angle yet.\"",
"\"Slow down. I need a second.\""
],
"anal_anal_position_switch_success": [
"\"Slowly... we can try this way.\"",
"\"Give me a second, then keep fucking my ass.\"",
"\"Move me carefully. I can still take it.\"",
"\"Okay... change it, but go slow.\"",
"\"Do not rush me while you move me.\""
],
"anal_cowgirl_failure": [
"\"No. Not that.\"",
"\"No. I'm not getting on top for anal.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"My ass isn't taking you like that.\""
],
"anal_cowgirl_pleasure_failure": [
"\"My ass is not ready for that.\"",
"\"Too fast. Give me time.\"",
"\"Not that deep.\"",
"\"Stop, I need to adjust.\"",
"\"Slow down.\"",
"\"Pull back for a second.\"",
"\"Wait... that hits wrong. Slow it down.\"",
"\"Careful, not like that.\""
],
"anal_cowgirl_pleasure_success": [
"\"Stay still while I ride your cock.\"",
"\"Let me take it in my ass.\"",
"\"Fuck... my ass is taking you.\"",
"\"My ass is so full.\"",
"\"I will control how deep it goes.\"",
"\"I can feel it stretching me.\"",
"\"Do not move, I have it.\"",
"\"Let me work it down.\""
],
"anal_cowgirl_success": [
"\"Stay still. Let me lower myself onto you.\"",
"\"Do not thrust up.\"",
"\"Let me control it.\"",
"\"Slowly... fuck.\"",
"\"I can take it this way.\""
],
"anal_doggy_failure": [
"\"No. Not that.\"",
"\"No. I'm not getting on all fours for that.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not from behind. My ass isn't ready.\""
],
"anal_doggy_pleasure_failure": [
"\"My ass is not ready for that.\"",
"\"Too fast. Give me time.\"",
"\"Not that deep.\"",
"\"Stop, I need to adjust.\"",
"\"Slow down.\"",
"\"Pull back for a second.\"",
"\"Stop pushing so deep. I need it slower.\"",
"\"Careful, not like that.\""
],
"anal_doggy_pleasure_success": [
"\"Fuck my ass from behind.\"",
"\"Hold my hips and keep going.\"",
"\"My ass can take it.\"",
"\"Fuck, my ass is full.\"",
"\"Go deep, but do not lose the rhythm.\"",
"\"Slow. I want to feel it.\"",
"\"Deeper... yes.\"",
"\"That angle is filthy.\""
],
"anal_doggy_success": [
"\"Slow. Let me take it.\"",
"\"Hold my hips carefully.\"",
"\"Fuck my ass slowly.\"",
"\"Do not force it.\"",
"\"Give me time.\""
],
"anal_missionary_failure": [
"\"No. Not that.\"",
"\"No. You're not going in my ass.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Stay close, but keep it out of there.\""
],
"anal_missionary_pleasure_failure": [
"\"My ass is not ready for that.\"",
"\"Too fast. Give me time.\"",
"\"Not that deep.\"",
"\"Stop, I need to adjust.\"",
"\"Slow down.\"",
"\"Pull back for a second.\"",
"\"Easy... you're too deep, too fast.\"",
"\"Careful, not like that.\""
],
"anal_missionary_pleasure_success": [
"\"Look at me while you take my ass.\"",
"\"Go slow... but stay in my ass.\"",
"\"My ass is so tight around you.\"",
"\"Fuck, I can feel all of it.\"",
"\"Deeper, but carefully.\"",
"\"Do not rush it.\"",
"\"I can take it like this.\"",
"\"That stretch is intense.\""
],
"anal_missionary_success": [
"\"Do not rush my ass.\"",
"\"Slow. I need to feel you.\"",
"\"Stay close.\"",
"\"I can take it if you listen.\"",
"\"Careful... keep going.\""
],
"anal_pleasure_failure": [
"\"Stop fucking my ass.\"",
"\"Out of my ass.\"",
"\"Your cock comes out now.\"",
"\"Enough. My ass is done.\"",
"\"No more anal.\""
],
"anal_pleasure_success": [
"\"Slow in my ass.\"",
"\"Do not force it.\"",
"\"That is deep.\"",
"\"Careful... keep going.\"",
"\"I can take it if you listen.\""
],
"anal_reverse_cowgirl_failure": [
"\"No. Not that.\"",
"\"No. I'm not turning around for anal.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not like that. My ass needs more time.\""
],
"anal_reverse_cowgirl_pleasure_failure": [
"\"My ass is not ready for that.\"",
"\"Too fast. Give me time.\"",
"\"Not that deep.\"",
"\"Stop, I need to adjust.\"",
"\"Slow down.\"",
"\"Pull back for a second.\"",
"\"Wait. That hurts if you move me like this.\"",
"\"Careful, not like that.\""
],
"anal_reverse_cowgirl_pleasure_success": [
"\"My ass is swallowing your cock.\"",
"\"Watch my ass take you.\"",
"\"Stay hard inside my ass.\"",
"\"I can feel you so deep back there.\"",
"\"Do not move, I want to ride it.\"",
"\"Fuck, this angle is filthy.\"",
"\"Look at how deep you are.\"",
"\"I can take more.\""
],
"anal_reverse_cowgirl_success": [
"\"Watch my ass take you.\"",
"\"Do not rush me.\"",
"\"I will move.\"",
"\"Fuck... that is deep.\"",
"\"Stay still under me.\""
],
"anal_talk_failure": [
"\"No. Not talking about that.\"",
"\"Leave my ass out of this.\"",
"\"Wrong subject.\"",
"\"Do not push that.\"",
"\"That is not happening.\""
],
"anal_talk_success": [
"\"You are thinking about my ass.\"",
"\"Maybe. Do not rush me.\"",
"\"That is a dangerous topic.\"",
"\"Careful with that idea.\"",
"\"I heard exactly what you want.\""
],
"anal_wall_failure": [
"\"No. Not that.\"",
"\"No. Not against the wall for anal.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Don't pin me there for my ass.\""
],
"anal_wall_pleasure_failure": [
"\"My ass is not ready for that.\"",
"\"Too fast. Give me time.\"",
"\"Not that deep.\"",
"\"Stop, I need to adjust.\"",
"\"Slow down.\"",
"\"Pull back for a second.\"",
"\"Hold on... against the wall is too much.\"",
"\"Careful, not like that.\""
],
"anal_wall_pleasure_success": [
"\"Fuck my ass against the wall.\"",
"\"Hold my hips and go deep.\"",
"\"My ass feels so full.\"",
"\"I can take it from behind.\"",
"\"Do not let me move away.\"",
"\"Fuck, that is rough.\"",
"\"Keep me pressed there.\"",
"\"Go slow, but deep.\""
],
"anal_wall_success": [
"\"Do not force my ass.\"",
"\"Slow, against the wall.\"",
"\"Hold me steady.\"",
"\"Careful... keep me up.\"",
"\"That is deep.\""
],
"analingus_fingers_failure": [
"\"No. Stop there.\"",
"\"Not that.\"",
"\"Mouth only, not fingers.\"",
"\"Do not push inside.\"",
"\"I said slow. Stop.\"",
"\"No. Your tongue was enough.\""
],
"analingus_fingers_success": [
"\"Slow. Keep your tongue there.\"",
"\"That feels filthy. Do it again.\"",
"\"Careful with your fingers.\"",
"\"Use your tongue first.\"",
"\"Do not rush my ass.\"",
"\"Keep licking, but be careful with your fingers.\"",
"\"Careful. Keep doing that.\""
],
"analingus_pleasure_failure": [
"\"Do not lick my asshole again.\"",
"\"No. Not my ass.\"",
"\"Mouth away from there.\"",
"\"Enough with my ass.\"",
"\"Stop rimming me.\""
],
"analingus_pleasure_success": [
"\"Slow on my ass.\"",
"\"Keep your tongue there.\"",
"\"That is filthy.\"",
"\"Do not rush it.\"",
"\"Fuck... there.\""
],
"analingus_to_anal_failure": [
"\"No, not your cock.\"",
"\"Keep using your mouth.\"",
"\"Stay with your tongue.\"",
"\"I am not ready to take it.\"",
"\"Do not push inside.\"",
"\"No anal sex right now.\""
],
"analingus_to_anal_success": [
"\"Slow. My ass needs a second.\"",
"\"You can try, but carefully.\"",
"\"Do not force it.\"",
"\"Let me adjust.\"",
"\"Careful... that is bigger than your tongue.\""
],
"analingus_to_cunnilingus_failure": [
"\"No, keep licking my ass.\"",
"\"Do not move your tongue yet.\"",
"\"I want more on my ass.\"",
"\"Keep your mouth where it was.\"",
"\"Not my pussy yet.\"",
"\"Stay there.\""
],
"analingus_to_cunnilingus_success": [
"\"Yes, back there.\"",
"\"My pussy. Use your tongue there again.\"",
"\"That is easier to take.\"",
"\"Keep licking me there.\"",
"\"Good... back to my clit.\""
],
"ask_about_schedule_failure": [
"\"No. Not now.\"",
"\"That is not happening today.\"",
"\"I am not giving you that.\"",
"\"You are asking too soon.\"",
"\"No. Leave that for later.\""
],
"ask_about_schedule_success": [
"\"I can tell you the useful part.\"",
"\"You want to know when to find me.\"",
"\"Fine. I will give you the basics.\"",
"\"That depends on the day.\"",
"\"Ask properly and I may answer.\""
],
"ask_address_failure": [
"\"No. Not now.\"",
"\"That is not happening today.\"",
"\"I am not giving you that.\"",
"\"You are asking too soon.\"",
"\"No. Leave that for later.\""
],
"ask_address_success": [
"\"That is private.\"",
"\"You are asking for a lot.\"",
"\"Maybe later, not casually.\"",
"\"Careful with that question.\"",
"\"I do not give that easily.\"",
"\"Use that address carefully.\"",
"\"Text before you come over.\"",
"\"Do not just show up.\""
],
"ask_anal_sex_failure": [
"\"No. Not that.\"",
"\"No. I'm not ready for anal.\"",
"\"That is too far.\"",
"\"No. Not my ass.\"",
"\"Not my ass tonight. Don't push it.\""
],
"ask_anal_sex_success": [
"\"My ass is not something you rush.\"",
"\"You want my ass.\"",
"\"If I allow that, you go slow.\"",
"\"That is not a small ask.\"",
"\"Maybe. Careful with me.\"",
"\"Keep going. My ass can take it.\"",
"\"Fuck my ass like that.\"",
"\"Slow. I want to feel it.\"",
"\"Do not rush the first inches.\"",
"\"Stay deep, but listen to me.\""
],
"ask_blowjob_failure": [
"\"No. I am not putting my mouth on you.\"",
"\"No. I don't want your cock in my mouth right now.\"",
"\"That is too far.\"",
"\"No. I'm not putting my mouth on you.\"",
"\"Not now. My mouth is off limits.\""
],
"ask_blowjob_success": [
"\"I will use my mouth, but do not push.\"",
"\"You want my mouth on you?\"",
"\"Fine. Give it to me slowly.\"",
"\"Stay still if I do this.\"",
"\"Alright. Let me decide the pace.\"",
"\"I like feeling you in my mouth.\"",
"\"Let me taste you.\"",
"\"I want to feel you get harder.\""
],
"ask_bottom_off_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"ask_bottom_off_success": [
"\"You want my bottoms off?\"",
"\"That changes things.\"",
"\"Maybe. Slowly.\"",
"\"Fine, but do not rush.\"",
"\"You are asking for more now.\""
],
"ask_bra_off_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"ask_bra_off_success": [
"\"You want the bra off too?\"",
"\"That is another step.\"",
"\"Ask like you mean it.\"",
"\"Fine. Slowly.\"",
"\"Do not get greedy.\""
],
"ask_footjob_failure": [
"\"Ask for something else. My feet are off limits.\"",
"\"No. Not with my feet.\"",
"\"That is not happening right now.\"",
"\"Do not put that on me yet.\"",
"\"No. I'm not doing that with my feet.\""
],
"ask_footjob_success": [
"\"You really want my feet for this? Fine, stay still.\"",
"\"Do not rush me. I need to feel the angle.\"",
"\"Like this? Tell me if I press too hard.\"",
"\"I can try it, but you keep control of yourself.\"",
"\"Alright. Let me use my feet on you.\"",
"\"Keep your cock against my feet.\"",
"\"That is it. Keep rubbing against me.\"",
"\"I can feel you getting harder.\""
],
"ask_handjob_failure": [
"\"No. I am not touching you there.\"",
"\"No. I don't want to stroke you right now.\"",
"\"That is too far.\"",
"\"No. I don't want my hand on you.\"",
"\"No. I'm not doing that.\""
],
"ask_handjob_success": [
"\"You want my hand?\"",
"\"I can use my hand.\"",
"\"Fine. I will stroke you.\"",
"\"Stay still.\"",
"\"Do not get greedy.\"",
"\"Let me feel you in my hand.\"",
"\"Your cock is getting so hard.\"",
"\"Move with my hand.\""
],
"ask_naked_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"ask_naked_success": [
"\"You want me naked.\"",
"\"That is everything.\"",
"\"Ask very carefully.\"",
"\"Maybe. Slowly.\"",
"\"If I do this, you do not rush.\""
],
"ask_number_failure": [
"\"No. Not now.\"",
"\"That is not happening today.\"",
"\"I am not giving you that.\"",
"\"You are asking too soon.\"",
"\"No. Leave that for later.\""
],
"ask_number_success": [
"\"You want my number.\"",
"\"Maybe. Do not abuse it.\"",
"\"Fine, but use it carefully.\"",
"\"That is a step.\"",
"\"I will decide if you get it.\"",
"\"Do not make me regret giving you that.\"",
"\"Fine. Text first.\"",
"\"Use it properly.\""
],
"ask_panties_off_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"ask_panties_off_success": [
"\"You want my panties off?\"",
"\"You are asking for the real line.\"",
"\"That is not a small ask.\"",
"\"Maybe. Slowly.\"",
"\"Fine, but careful.\""
],
"ask_permission_finger_failure": [
"\"No. Not that.\"",
"\"No. I'm not ready for your fingers.\"",
"\"That is too far.\"",
"\"No. I don't want your fingers there.\"",
"\"Ask me later. I'm not opening up yet.\""
],
"ask_permission_finger_success": [
"\"Ask before your hand goes inside.\"",
"\"Use your fingers carefully.\"",
"\"You want to finger me?\"",
"\"Fine. Slowly.\"",
"\"I will let you, but do not rush.\"",
"\"I want to feel your fingers inside me.\"",
"\"Yes. Keep your fingers there.\"",
"\"Use your thumb on my clit.\""
],
"ask_permission_oral_failure": [
"\"No. Not that.\"",
"\"No. I don't want your mouth on me yet.\"",
"\"That is too far.\"",
"\"No. I don't want you going down on me.\"",
"\"Not yet. I'm not ready for that kind of attention.\""
],
"ask_permission_oral_success": [
"\"You want your mouth on my pussy?\"",
"\"Fine. Use your tongue slowly.\"",
"\"Yes. Get between my thighs.\"",
"\"I will let you lick me.\"",
"\"Okay. Come here.\"",
"\"Use your tongue like that again.\"",
"\"My clit. Stay on it.\"",
"\"Do not stop with your mouth.\""
],
"ask_sex_failure": [
"\"No. I do not want sex right now.\"",
"\"No. I'm not ready to have sex.\"",
"\"That is too far.\"",
"\"No. Not sex yet.\"",
"\"Not yet. I don't want you inside me.\""
],
"ask_sex_success": [
"\"You want to fuck me.\"",
"\"If we do this, go slow.\"",
"\"Fine. Put it in carefully.\"",
"\"Yes, but do not rush me.\"",
"\"I know what you are asking.\"",
"\"I want to feel your cock.\"",
"\"Fuck me like that.\"",
"\"Stay inside me.\""
],
"ask_titfuck_failure": [
"\"Ask for something else. My tits are not yours to fuck.\"",
"\"No. Not with my tits.\"",
"\"I am not letting you use my chest like that.\"",
"\"No. I don't want to do that with my tits.\"",
"\"No. My tits aren't for that right now.\""
],
"ask_titfuck_success": [
"\"You want my tits around you? Alright, come closer.\"",
"\"Fine. Use my tits, but listen when I tell you to slow down.\"",
"\"Like this? Keep your hips slow.\"",
"\"Do not shove. Let me hold you between them.\"",
"\"I can feel how hard you are against me.\"",
"\"Put your cock between my tits.\"",
"\"Keep your eyes on my tits.\"",
"\"Use my chest like that.\""
],
"ask_top_off_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"ask_top_off_success": [
"\"You want my top off?\"",
"\"Maybe. Ask properly.\"",
"\"Fine, I can take it off.\"",
"\"Do not stare like an idiot.\"",
"\"Slow. I decide how.\""
],
"beg_anal_sex_failure": [
"\"No. Not that.\"",
"\"Begging won't make my ass ready.\"",
"\"That is too far.\"",
"\"No. I'm not ready for anal.\"",
"\"No. Don't try to plead your way into anal.\""
],
"beg_anal_sex_success": [
"\"You are begging for my ass.\"",
"\"That is a dangerous thing to beg for.\"",
"\"If I let you, you do not force it.\"",
"\"Maybe. Slowly.\"",
"\"You want it that badly? Careful.\"",
"\"Keep going. My ass can take it.\"",
"\"Fuck my ass like that.\"",
"\"Slow. I want to feel it.\""
],
"beg_blowjob_failure": [
"\"No. Not that.\"",
"\"Begging won't put my mouth on your cock.\"",
"\"That is too far.\"",
"\"No. I don't want to use my mouth.\"",
"\"No. That pleading is making me want it less.\""
],
"beg_blowjob_success": [
"\"You sound desperate for my mouth.\"",
"\"Alright. Give me your cock.\"",
"\"Fine. Begging worked this time.\"",
"\"Stay still and let me choose.\"",
"\"You want it that badly?\"",
"\"I like feeling you in my mouth.\"",
"\"Let me taste you.\"",
"\"I want to feel you get harder.\""
],
"beg_cunnilingus_failure": [
"\"No. Not that.\"",
"\"No. Begging won't make me spread my legs.\"",
"\"That is too far.\"",
"\"No. I don't want your mouth there.\"",
"\"Not now. I'm not letting you taste me.\""
],
"beg_cunnilingus_success": [
"\"Begging for my pussy. Dangerous.\"",
"\"Use your tongue properly.\"",
"\"You want to lick me that badly?\"",
"\"Fine. Get down there.\"",
"\"Yes. Make it worth it.\"",
"\"Use your tongue like that again.\"",
"\"My clit. Stay on it.\"",
"\"Do not stop with your mouth.\""
],
"beg_footjob_failure": [
"\"Begging does not make that a yes.\"",
"\"No. I am not doing that with my feet.\"",
"\"I heard you. The answer is still no.\"",
"\"Not like that. You are making it worse.\"",
"\"Stop begging for my feet.\""
],
"beg_footjob_success": [
"\"You sound pathetic asking for it like that. Stay there.\"",
"\"Fine. I will use my feet, but you asked for this.\"",
"\"Begging actually suits you right now.\"",
"\"I want to see you hold still while I do it.\"",
"\"Alright, I will give you my feet. Do not waste it.\"",
"\"Keep your cock against my feet.\"",
"\"That is it. Keep rubbing against me.\"",
"\"I can feel you getting harder.\""
],
"beg_handjob_failure": [
"\"No. Not that.\"",
"\"No. Don't beg for my hand like that.\"",
"\"That is too far.\"",
"\"No. I don't want to touch you like that.\"",
"\"Not with that angle. You're making it awkward.\""
],
"beg_handjob_success": [
"\"You really want my hand.\"",
"\"Stay still and take my hand.\"",
"\"I will do it, but I set the pace.\"",
"\"Fine. I will touch it.\"",
"\"Begging makes you honest.\"",
"\"Let me feel you in my hand.\"",
"\"Your cock is getting so hard.\"",
"\"Move with my hand.\""
],
"beg_sex_failure": [
"\"No. Not that.\"",
"\"No. Begging won't make me ready for sex.\"",
"\"That is too far.\"",
"\"No. I'm not ready to have sex.\"",
"\"Not yet. Wanting it badly doesn't make me ready.\""
],
"beg_sex_success": [
"\"You want my pussy that badly?\"",
"\"Fine. Show me why I should let you.\"",
"\"Begging for sex suits you.\"",
"\"If I say yes, go slow.\"",
"\"Alright. Do not waste it.\"",
"\"I want to feel your cock.\"",
"\"Fuck me like that.\"",
"\"Stay inside me.\""
],
"beg_sixty_nine_failure": [
"\"No. Not that.\"",
"\"No. Begging won't make me climb into that.\"",
"\"That is too far.\"",
"\"No. Begging won't make me do that.\"",
"\"Not now. That position is too much for me.\""
],
"beg_sixty_nine_success": [
"\"Begging for my mouth and my pussy.\"",
"\"Keep your tongue useful.\"",
"\"You want both at once that badly?\"",
"\"Fine. Get into position.\"",
"\"Alright. Earn it.\"",
"\"I can handle you while you lick me.\"",
"\"Keep your mouth on me.\"",
"\"Let me feel you in my mouth too.\""
],
"beg_titfuck_failure": [
"\"No. Begging does not make my tits available.\"",
"\"Do not plead for that. I am not doing it.\"",
"\"Not now, and not because you begged.\"",
"\"I heard you the first time. No.\"",
"\"You are making it awkward. Stop.\""
],
"beg_titfuck_success": [
"\"Begging for my tits is a good look on you.\"",
"\"There. Is that enough for your desperate cock?\"",
"\"You want it that badly? Then hold still.\"",
"\"Fine. I will give you this, but I set the pace.\"",
"\"Put your cock between my tits.\"",
"\"Keep your eyes on my tits.\"",
"\"Do not move until I tell you.\"",
"\"Use my chest like that.\""
],
"blowjob_to_sex_failure": [
"\"No, stay in my mouth.\"",
"\"Let me finish with my mouth.\"",
"\"Not my pussy right now.\"",
"\"I want to keep sucking.\"",
"\"Do not switch yet.\"",
"\"Keep it here.\""
],
"blowjob_to_sex_success": [
"\"You can fuck me now.\"",
"\"Use my pussy too.\"",
"\"I am wet enough.\"",
"\"Come here. Put it in slowly.\"",
"\"My mouth got you ready. Now fuck me.\""
],
"breast_sex_failure": [
"\"No. Not that.\"",
"\"No. I'm not wrapping my tits around your cock.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not with my breasts. Give me space.\""
],
"breast_sex_pleasure_failure": [
"\"No. Stop there.\"",
"\"Slow down.\"",
"\"Not like that.\"",
"\"Change the angle.\"",
"\"Wait, that does not feel right.\"",
"\"Ease up a little.\"",
"\"Give me a second.\"",
"\"Wrong angle.\""
],
"breast_sex_pleasure_success": [
"\"Do you like my breasts around it?\"",
"\"Your cock looks good between them.\"",
"\"Use my tits.\"",
"\"Keep sliding between my tits.\"",
"\"My tits are yours right now.\"",
"\"Do not stop, I can feel you twitching.\"",
"\"Cum between them if you need to.\"",
"\"I will hold them tight for you.\""
],
"breast_sex_success": [
"\"Use my tits.\"",
"\"Fuck my tits slowly.\"",
"\"Not too rough.\"",
"\"Keep it between them.\"",
"\"I can feel you twitching.\""
],
"caress_thigh_failure": [
"\"Move your hand back.\"",
"\"No. Not there.\"",
"\"Do not touch me like that yet.\"",
"\"That is too far.\"",
"\"No. You are rushing it.\""
],
"caress_thigh_success": [
"\"Slowly on my thigh.\"",
"\"Your hand is warm there.\"",
"\"That is close.\"",
"\"Do not rush higher.\"",
"\"Careful. That feels good.\""
],
"casual_heat_failure": [
"\"No. Stop there.\"",
"\"Not like that.\"",
"\"No. That does not land.\"",
"\"Are you serious right now?\"",
"\"You killed the mood.\"",
"\"Wrong time. Completely.\""
],
"casual_heat_success": [
"\"Now come back here.\"",
"\"There. Question answered.\"",
"\"This really could have waited.\"",
"\"One answer, then focus.\"",
"\"Bad timing, but fine.\""
],
"climax_back_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_back_success": [
"\"I can feel it on my back.\"",
"\"You marked me from behind.\"",
"\"That is all over my back.\"",
"\"Do not look so proud.\"",
"\"You really wanted it there.\""
],
"climax_body_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_body_success": [
"\"You made a mess on me.\"",
"\"That is warm.\"",
"\"You came all over my skin.\"",
"\"Do not pretend that was accidental.\"",
"\"Look what you did.\""
],
"climax_boobs_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_boobs_success": [
"\"You came all over my tits.\"",
"\"That is a lot of cum.\"",
"\"Do you like seeing it on my chest?\"",
"\"My tits are covered.\"",
"\"You made your point.\""
],
"climax_crotch_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_crotch_success": [
"\"That landed close.\"",
"\"You almost got it on my pussy.\"",
"\"Careful where you aim.\"",
"\"I can feel it near my slit.\"",
"\"That was not subtle.\""
],
"climax_face_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_face_success": [
"\"You covered my face.\"",
"\"Look at the mess you made.\"",
"\"Do not look so proud.\"",
"\"You got it all over me.\"",
"\"My face, really?\""
],
"climax_failure": [
"\"Use your hand.\"",
"\"Not there.\"",
"\"No. Finish on yourself.\"",
"\"Keep it off me.\"",
"\"I said not there.\"",
"\"No. Not there.\""
],
"climax_hands_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_hands_success": [
"\"You came all over my hands.\"",
"\"My fingers are covered.\"",
"\"Give me a second. That is a lot.\"",
"\"You made a mess in my palms.\"",
"\"I felt every pulse.\""
],
"climax_inside_ass_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_inside_ass_success": [
"\"I can feel your cum in my ass.\"",
"\"You came inside my asshole.\"",
"\"Do not move yet.\"",
"\"Fuck... that is deep.\"",
"\"I can still feel you back there.\""
],
"climax_inside_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_inside_success": [
"\"I can feel your cum inside me.\"",
"\"You came in my pussy.\"",
"\"Do not pull out yet.\"",
"\"Fuck... that is deep.\"",
"\"I can still feel it pulsing.\""
],
"climax_mouth_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_mouth_success": [
"\"I can taste you.\"",
"\"You came right on my tongue.\"",
"\"Give me a second. My mouth is full.\"",
"\"Fuck... you filled my mouth.\"",
"\"I got it. All of it.\""
],
"climax_pants_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_pants_success": [
"\"In your pants?\"",
"\"You really could not hold it.\"",
"\"That is going to show.\"",
"\"You made a mess of yourself.\"",
"\"That was not your proudest finish.\""
],
"climax_stomach_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_stomach_success": [
"\"You came on my stomach.\"",
"\"That is warm.\"",
"\"Look at the mess on me.\"",
"\"You got it all over my belly.\"",
"\"Do not pretend you missed.\""
],
"climax_success": [
"\"Fuck... you came hard.\"",
"\"I saw that.\"",
"\"You really let go.\"",
"\"That took you over.\"",
"\"You could not hold that back.\""
],
"climax_throat_failure": [
"\"No. Not there.\"",
"\"Do not finish there.\"",
"\"Move it away.\"",
"\"Not there.\"",
"\"I said not there.\""
],
"climax_throat_success": [
"\"You went deep.\"",
"\"I felt every pulse in my throat.\"",
"\"Fuck, I need air.\"",
"\"You really made me swallow that.\"",
"\"My throat can still feel you.\""
],
"command_failure": [
"\"No. I am not doing that.\"",
"\"Do not order me around yet.\"",
"\"That does not work on me.\"",
"\"No. Try asking first.\"",
"\"Not happening.\""
],
"command_success": [
"\"That voice works when you do not waste it.\"",
"\"I heard you.\"",
"\"Say it that clearly again.\"",
"\"Fine. Lead, then.\"",
"\"I will follow that much.\""
],
"compliment_style_failure": [
"\"Thanks. Leave it there.\"",
"\"That's not much of a compliment.\"",
"\"That is enough.\"",
"\"I heard you.\"",
"\"Move on.\""
],
"compliment_style_success": [
"\"You noticed that? Good.\"",
"\"You noticed. Thanks.\"",
"\"I will accept that one.\"",
"\"Careful. That was charming.\""
],
"cont_69_focus_her_failure": [
"\"Don't make my side of this disappear.\"",
"\"Do not change it like that.\"",
"\"Slow your mouth down. I need room to breathe.\"",
"\"Too much on me at once. Ease off.\"",
"\"Keep it mutual. I don't want to be swallowed by it.\""
],
"cont_69_focus_her_success": [
"\"Keep your mouth on me.\"",
"\"Fuck... your tongue.\"",
"\"You are making it hard to suck.\"",
"\"Keep licking me.\"",
"\"Do not stop for me.\"",
"\"I am losing the rhythm.\""
],
"cont_69_grind_failure": [
"\"Too much. Slow down.\"",
"\"Do not fuck my mouth like that yet.\"",
"\"Less force. I am still trying to breathe.\"",
"\"Keep it mutual. Do not just push into me.\"",
"\"No. Not that hard.\""
],
"cont_69_grind_success": [
"\"Careful. I can take some, not all of that.\"",
"\"Fuck... keep your mouth on me if you move like that.\"",
"\"Do not just use my mouth. Keep licking.\"",
"\"That is rougher... but do not stop.\"",
"\"I can feel you trying to fuck my mouth.\""
],
"cont_69_keep_failure": [
"\"Wait, I'm losing the rhythm.\"",
"\"Do not change it like that.\"",
"\"Slow down. We're getting tangled.\"",
"\"Give me a second to catch up.\"",
"\"Don't rush it. I need the pace back.\""
],
"cont_69_keep_success": [
"\"Do not stop your tongue.\"",
"\"I can feel you in my mouth.\"",
"\"Keep licking while I suck you.\"",
"\"Mmh... both of us.\"",
"\"Stay in position.\""
],
"cont_69_let_her_focus_you_failure": [
"\"Don't make me do all the work.\"",
"\"Do not change it like that.\"",
"\"I'm not taking over while you just lie there.\"",
"\"Stay with me. Move with me, not against me.\"",
"\"No, I need you in this too.\""
],
"cont_69_let_her_focus_you_success": [
"\"Your cock is twitching.\"",
"\"Let me focus on you.\"",
"\"Stay still.\"",
"\"I can make you react.\"",
"\"Do not distract me.\""
],
"cont_69_to_sex_failure": [
"\"No, stay like this. I don't want to fuck yet.\"",
"\"Do not change it like that.\"",
"\"No, stay like this. I do not want to fuck yet.\"",
"\"Not sex. Keep your mouth where it is.\"",
"\"Don't turn this into penetration.\""
],
"cont_69_to_sex_success": [
"\"Okay... fuck me while I am still wet.\"",
"\"We can change it into sex.\"",
"\"Put it in slowly.\"",
"\"Do not waste what we just did.\"",
"\"I want you inside me now.\""
],
"cont_anal_cowgirl_failure": [
"\"Easy. I can't take your ass like that from on top.\"",
"\"Do not change it like that.\"",
"\"Slow down under me. I'm too tight for that pace.\"",
"\"Don't drive up into me like that.\"",
"\"Wait. Let me decide how deep it goes.\""
],
"cont_anal_cowgirl_success": [
"\"Don't thrust. Let me move.\"",
"\"Do not thrust up.\"",
"\"I can handle it.\"",
"\"Let me take it.\"",
"\"Stay still.\""
],
"cont_anal_doggy_failure": [
"\"Careful. Don't hammer my ass like that.\"",
"\"Do not change it like that.\"",
"\"Slow down behind me. I need to feel in control.\"",
"\"Not so deep. My body is tensing up.\"",
"\"Hold my hips, but don't use them like handles.\""
],
"cont_anal_doggy_success": [
"\"Fuck my ass from behind.\"",
"\"Hold my hips.\"",
"\"Slow but deep.\"",
"\"Do not rush.\"",
"\"I can take it.\""
],
"cont_anal_hold_failure": [
"\"Don't lock me in place like that.\"",
"\"Do not change it like that.\"",
"\"Loosen your grip. I need to move.\"",
"\"Careful. That hold makes me tighten up.\"",
"\"Let my body move with it.\""
],
"cont_anal_hold_success": [
"\"Do not move yet.\"",
"\"Let me adjust.\"",
"\"Stay still.\"",
"\"I need a second.\"",
"\"Okay... slowly.\""
],
"cont_anal_missionary_failure": [
"\"Stay close, but give me a slower rhythm.\"",
"\"Do not change it like that.\"",
"\"My ass needs more patience than that.\"",
"\"Don't press into me like you're trying to prove something.\"",
"\"Easy. I need a second under you.\""
],
"cont_anal_missionary_success": [
"\"Slow in my ass.\"",
"\"Stay close.\"",
"\"Do not look away.\"",
"\"That is deep.\"",
"\"Careful... keep going.\""
],
"cont_anal_reverse_cowgirl_failure": [
"\"Don't make me take it that fast.\"",
"\"Do not change it like that.\"",
"\"Let me set the rhythm from here.\"",
"\"Not so deep from behind me.\"",
"\"Slow down. I can feel every inch.\""
],
"cont_anal_reverse_cowgirl_success": [
"\"Watch my ass.\"",
"\"Do not rush me.\"",
"\"Stay still. I'll move.\"",
"\"That is deep.\"",
"\"Stay still.\""
],
"cont_anal_slow_failure": [
"\"Even slower. I mean it.\"",
"\"Do not change it like that.\"",
"\"Careful. My ass is still tight.\"",
"\"Don't rush the next push.\"",
"\"Hold on. Let me breathe through it.\""
],
"cont_anal_slow_success": [
"\"My ass needs time.\"",
"\"Slow. Keep it slow.\"",
"\"Do not force it.\"",
"\"That is deep.\"",
"\"Careful... keep going.\""
],
"cont_anal_wall_failure": [
"\"Don't pin me that hard.\"",
"\"Do not change it like that.\"",
"\"The wall makes it rougher. Slow down.\"",
"\"Careful. I need my balance.\"",
"\"Not so deep against the wall.\""
],
"cont_anal_wall_success": [
"\"Hold me steady.\"",
"\"Slow against the wall.\"",
"\"Do not force it.\"",
"\"That is intense.\"",
"\"Careful... keep going.\""
],
"cont_analingus_circle_failure": [
"\"Not so much circling. It's too sensitive.\"",
"\"Do not change it like that.\"",
"\"Careful with your tongue there.\"",
"\"Slow it down. My ass is getting tight.\"",
"\"Lighter. That spot needs patience.\""
],
"cont_analingus_circle_success": [
"\"Tongue and fingers... fuck.\"",
"\"Slow with my ass.\"",
"\"Do not force it.\"",
"\"That is too much... keep going.\"",
"\"Careful there.\""
],
"cont_analingus_keep_failure": [
"\"Easy. Give me a second before you keep going.\"",
"\"Do not change it like that.\"",
"\"Don't keep pushing your tongue in like that.\"",
"\"Slow down. I'm too sensitive there.\"",
"\"Give me a breath before you keep going.\""
],
"cont_analingus_keep_success": [
"\"Keep your tongue there.\"",
"\"Slow on my ass.\"",
"\"That is filthy.\"",
"\"Do not stop.\"",
"\"Fuck... there.\""
],
"cont_analingus_slow_failure": [
"\"Even slower. Don't tease it so hard.\"",
"\"Do not change it like that.\"",
"\"Careful. That spot is raw right now.\"",
"\"Don't drag it out until I tense up.\"",
"\"Slow is fine, but make it lighter.\""
],
"cont_analingus_slow_success": [
"\"Do not tease my ass like that.\"",
"\"Keep your tongue careful.\"",
"\"Slow... fuck.\"",
"\"You are making it worse.\"",
"\"That is too filthy.\""
],
"cont_analingus_to_anal_failure": [
"\"No. Your mouth back there doesn't mean your cock.\"",
"\"Do not change it like that.\"",
"\"No, keep using your tongue. Do not put it in.\"",
"\"Don't turn rimming into anal sex.\"",
"\"Not penetration. Stay with your tongue.\""
],
"cont_analingus_to_anal_success": [
"\"Slow. My ass needs a second.\"",
"\"You can try, but carefully.\"",
"\"Do not force it.\"",
"\"Let me adjust.\"",
"\"Careful... that is bigger than your tongue.\""
],
"cont_analingus_to_cunni_failure": [
"\"No, don't switch places so suddenly.\"",
"\"Do not change it like that.\"",
"\"Keep your mouth where I can handle it.\"",
"\"Not my pussy yet. Slow down.\"",
"\"Wait. Don't rush from one place to the other.\""
],
"cont_analingus_to_cunni_success": [
"\"Yes, back there.\"",
"\"My pussy. Use your tongue there again.\"",
"\"That is easier to take.\"",
"\"Keep licking me there.\"",
"\"Good... back to my clit.\""
],
"cont_bj_deeper_failure": [
"\"No deeper. I mean it.\"",
"\"Do not change it like that.\"",
"\"No deeper.\"",
"\"Careful. I can only take so much.\"",
"\"Don't push your cock farther in.\""
],
"cont_bj_deeper_success": [
"\"Slow. I need to breathe.\"",
"\"Do not force my throat.\"",
"\"I can take a little more.\"",
"\"Careful... deeper.\"",
"\"Let me control it.\""
],
"cont_bj_eye_contact_failure": [
"\"Don't stare at me like I'm a test.\"",
"\"Do not change it like that.\"",
"\"That look is making me tense.\"",
"\"Let me focus without your eyes pinning me down.\"",
"\"No, not with that stare.\""
],
"cont_bj_eye_contact_success": [
"\"Mmh... eyes on you.\"",
"\"Watch me, then.\"",
"\"Do not look away.\"",
"\"You like seeing me like this.\"",
"\"That makes it dirtier.\""
],
"cont_bj_guide_rhythm_failure": [
"\"Don't guide my head like that.\"",
"\"Do not change it like that.\"",
"\"Let me find the pace with my mouth.\"",
"\"Your hands are rushing me.\"",
"\"No, I'm not following that rhythm.\""
],
"cont_bj_guide_rhythm_success": [
"\"Guide me slowly.\"",
"\"Not too fast.\"",
"\"I can follow that.\"",
"\"Do not push too deep.\"",
"\"Like this?\""
],
"cont_bj_let_continue_failure": [
"\"Don't just go quiet and leave me guessing.\"",
"\"Do not change it like that.\"",
"\"Give me something to follow.\"",
"\"I need you present, not silent.\"",
"\"No, don't make me carry the whole thing.\""
],
"cont_bj_let_continue_success": [
"\"Do not rush my mouth.\"",
"\"Let me keep going.\"",
"\"Stay still.\"",
"\"I can feel you getting harder.\"",
"\"Mmh... like this?\""
],
"cont_bj_praise_failure": [
"\"Don't talk to me like I'm being graded.\"",
"\"Do not change it like that.\"",
"\"Less commentary. Let me focus.\"",
"\"That praise feels strange right now.\"",
"\"No, don't turn this into a performance.\""
],
"cont_bj_praise_success": [
"\"Do not make me blush with my mouth full.\"",
"\"Mmh... you like that?\"",
"\"Tell me when it is good.\"",
"\"I can feel you react.\"",
"\"Keep praising me.\""
],
"cont_bj_slow_down_failure": [
"\"Don't keep changing the pace on me.\"",
"\"Do not change it like that.\"",
"\"If you want slower, stop moving into my mouth.\"",
"\"No, that makes it harder to breathe.\"",
"\"Careful. Slower doesn't mean pushing harder.\""
],
"cont_bj_slow_down_success": [
"\"Slower, then.\"",
"\"Trying not to come?\"",
"\"I can slow down.\"",
"\"Stay with me.\"",
"\"Do not lose it too soon.\""
],
"cont_bj_to_sex_failure": [
"\"No. My mouth doesn't mean sex.\"",
"\"Do not change it like that.\"",
"\"Not sex. Keep it where it is.\"",
"\"Don't pull me from this into fucking.\"",
"\"No, I'm not spreading for you yet.\""
],
"cont_bj_to_sex_success": [
"\"You can fuck me now.\"",
"\"Use my pussy too.\"",
"\"I am wet enough.\"",
"\"Come here. Put it in slowly.\"",
"\"My mouth got you ready. Now fuck me.\""
],
"cont_bj_touch_hair_failure": [
"\"Don't grab my hair.\"",
"\"Do not change it like that.\"",
"\"Easy with my hair.\"",
"\"Hands out of my hair unless I let you.\"",
"\"No, that makes me tense.\""
],
"cont_bj_touch_hair_success": [
"\"Keep your hand soft.\"",
"\"Careful with my hair.\"",
"\"Do not pull too hard.\"",
"\"You can touch it.\"",
"\"Mmh... gently.\""
],
"cont_cunni_add_fingers_failure": [
"\"No fingers. Just your mouth.\"",
"\"Do not change it like that.\"",
"\"Keep licking, but don't push inside.\"",
"\"My clit is enough right now.\"",
"\"Don't add your hand yet.\""
],
"cont_cunni_add_fingers_success": [
"\"Fingers too... yes.\"",
"\"Keep licking while you finger me.\"",
"\"That is too good.\"",
"\"Do not stop either.\"",
"\"Fuck, both.\""
],
"cont_cunni_keep_failure": [
"\"Slow down. My clit is too sensitive.\"",
"\"Do not change it like that.\"",
"\"Don't lick so hard.\"",
"\"Give me a second, but stay there.\"",
"\"Softer. You're making me tense.\""
],
"cont_cunni_keep_success": [
"\"Do not stop your tongue.\"",
"\"Right there on my clit.\"",
"\"Use your mouth.\"",
"\"Keep licking me.\"",
"\"Fuck... yes.\""
],
"cont_cunni_tease_failure": [
"\"Don't tease me like that.\"",
"\"Do not change it like that.\"",
"\"Either stay on my clit or slow down.\"",
"\"That back and forth is too much.\"",
"\"No, stop playing around with it.\""
],
"cont_cunni_tease_success": [
"\"Give me more tongue.\"",
"\"Stay on my clit.\"",
"\"Do not tease me like that.\"",
"\"Fuck, you are cruel.\"",
"\"Stop making me chase it.\""
],
"cont_cunni_to_analingus_failure": [
"\"No. My ass isn't part of this.\"",
"\"Do not change it like that.\"",
"\"No, keep your mouth on my pussy.\"",
"\"Keep your mouth on my pussy.\"",
"\"Don't move your tongue back there.\""
],
"cont_cunni_to_analingus_success": [
"\"Careful... lower than that is different.\"",
"\"Go slow if you are moving there.\"",
"\"Do not rush my ass.\"",
"\"Okay... carefully.\"",
"\"I feel where your mouth is going.\""
],
"cont_cunni_to_sex_failure": [
"\"No, keep licking me. I don't want to fuck yet.\"",
"\"Do not change it like that.\"",
"\"No, keep licking me. I do not want to fuck yet.\"",
"\"Not sex. Your mouth was good.\"",
"\"Don't stop eating me just to push inside.\""
],
"cont_cunni_to_sex_success": [
"\"Yes... fuck me while I am still wet.\"",
"\"You can put it in now.\"",
"\"Do not waste what your mouth did.\"",
"\"I want to feel you inside me.\"",
"\"Slow first. I am still sensitive.\""
],
"cont_finger_keep_failure": [
"\"Easy with your fingers.\"",
"\"Do not change it like that.\"",
"\"Not so fast inside me.\"",
"\"Slow down. I'm too sensitive.\"",
"\"Don't curl that hard.\""
],
"cont_finger_keep_success": [
"\"Your fingers are making me shake.\"",
"\"Keep fingering me.\"",
"\"Curl them there.\"",
"\"Do not stop.\"",
"\"Yes, inside me.\""
],
"cont_finger_tease_failure": [
"\"Don't tease me and then pull away.\"",
"\"Do not change it like that.\"",
"\"That is making me tense, not wet.\"",
"\"Stay steady or slow down.\"",
"\"No, not that stop-start thing.\""
],
"cont_finger_tease_success": [
"\"Do not tease me too much.\"",
"\"Fuck... keep them in.\"",
"\"You are doing that on purpose.\"",
"\"Stop pulling back.\"",
"\"Make me feel it.\""
],
"cont_finger_to_mouth_failure": [
"\"No. Don't switch to your mouth yet.\"",
"\"Do not change it like that.\"",
"\"Keep your fingers there for now.\"",
"\"Not your tongue. Not yet.\"",
"\"Don't move down so fast.\""
],
"cont_finger_to_mouth_success": [
"\"Your mouth now.\"",
"\"Yes... lick me there.\"",
"\"Do not stop touching me completely.\"",
"\"Use your tongue.\"",
"\"I am already wet. Keep going.\""
],
"cont_footjob_keep_failure": [
"\"Careful. Not so rough with your feet.\"",
"\"Do not change it like that.\"",
"\"Don't squeeze me like that.\"",
"\"Slow your feet down.\"",
"\"Easy. You're making me too sensitive.\""
],
"cont_footjob_keep_success": [
"\"Stay there.\"",
"\"My feet are enough?\"",
"\"Do not move too much.\"",
"\"I can feel you twitching.\"",
"\"Keep it between my soles.\""
],
"cont_hj_guide_rhythm_failure": [
"\"Don't guide my hand like that.\"",
"\"Do not change it like that.\"",
"\"Let me stroke you my way.\"",
"\"Your rhythm is too pushy.\"",
"\"No, stop steering every motion.\""
],
"cont_hj_guide_rhythm_success": [
"\"Let me feel you in my hand.\"",
"\"Show me the rhythm.\"",
"\"Like that?\"",
"\"Do not squeeze too hard?\"",
"\"I can follow that.\"",
"\"Guide me slowly.\""
],
"cont_hj_keep_failure": [
"\"Easy. Your cock is getting too sensitive.\"",
"\"Do not change it like that.\"",
"\"Slow down under my hand.\"",
"\"Don't thrust into my grip like that.\"",
"\"Give me a second to keep control.\""
],
"cont_hj_keep_success": [
"\"My hand is enough for now.\"",
"\"Like this?\"",
"\"You are getting harder.\"",
"\"Stay still.\"",
"\"I can feel you twitch.\""
],
"cont_hj_kiss_failure": [
"\"No, don't add kissing right now.\"",
"\"Do not change it like that.\"",
"\"Let my hand focus first.\"",
"\"That kiss throws me off.\"",
"\"Not like that. I'm busy with you.\""
],
"cont_hj_kiss_success": [
"\"Let me feel you in my hand.\"",
"\"Kiss me while I do it.\"",
"\"Keep kissing me.\"",
"\"Mmh... you are still hard.\"",
"\"Do not lose the rhythm.\"",
"\"That is distracting.\""
],
"cont_hj_tease_failure": [
"\"Don't tease yourself through my hand.\"",
"\"Do not change it like that.\"",
"\"That pace is annoying me.\"",
"\"No, keep it cleaner than that.\"",
"\"Stop making my grip chase you.\""
],
"cont_hj_tease_success": [
"\"You like my hand too much.\"",
"\"You are making this worse.\"",
"\"Do not tease me while I hold it.\"",
"\"I can feel you pulse.\"",
"\"Keep talking if you can.\""
],
"cont_hj_to_bj_failure": [
"\"No. My hand doesn't mean my mouth.\"",
"\"Do not change it like that.\"",
"\"No. My hand is enough.\"",
"\"Don't guide me down there.\"",
"\"Not my mouth. Keep it in my hand.\""
],
"cont_hj_to_bj_success": [
"\"I can use my mouth for a bit.\"",
"\"Stay still.\"",
"\"Let me take over.\"",
"\"Okay... my mouth then.\"",
"\"Do not push. I have it.\""
],
"cont_rubbing_keep_failure": [
"\"Careful. The fabric is rubbing too hard.\"",
"\"Do not change it like that.\"",
"\"Softer. That is too much friction.\"",
"\"Don't press into me like that.\"",
"\"Slow down. I'm getting tense.\""
],
"cont_rubbing_keep_success": [
"\"Through the fabric... yes.\"",
"\"Keep it there.\"",
"\"Do not go inside yet.\"",
"\"That is working.\"",
"\"Slow, keep rubbing.\""
],
"cont_rubbing_to_fingering_failure": [
"\"No. Stay over the fabric.\"",
"\"Do not change it like that.\"",
"\"No, keep it over the clothes.\"",
"\"Don't slide your fingers inside yet.\"",
"\"Keep it outside. I'm not ready.\""
],
"cont_rubbing_to_fingering_success": [
"\"Careful. That is direct now.\"",
"\"You got past the clothes.\"",
"\"Slow... I feel your fingers now.\"",
"\"That is more than rubbing.\"",
"\"Okay. Just do not rush.\""
],
"cont_sex_cowgirl_failure": [
"\"Don't make me ride harder than I want.\"",
"\"Do not change it like that.\"",
"\"Let me keep the pace from up here.\"",
"\"No, your thrusts are throwing me off.\"",
"\"Slow down. I'm trying to stay with it.\""
],
"cont_sex_cowgirl_success": [
"\"Let me ride you.\"",
"\"Stay still.\"",
"\"Let me ride you.\"",
"\"You feel good under me.\"",
"\"Watch me take it.\""
],
"cont_sex_doggy_failure": [
"\"Not so rough from behind.\"",
"\"Do not change it like that.\"",
"\"Hold on. I need the pace slower.\"",
"\"Don't drive into me like that.\"",
"\"Careful. My legs are getting tense.\""
],
"cont_sex_doggy_success": [
"\"Hold my hips.\"",
"\"From behind... yes.\"",
"\"Keep fucking me.\"",
"\"Not too fast.\"",
"\"I can take it.\""
],
"cont_sex_missionary_failure": [
"\"Slow down while you're over me.\"",
"\"Do not change it like that.\"",
"\"Not that hard. Stay with me.\"",
"\"Careful. I need a softer rhythm.\"",
"\"Don't make me feel trapped under you.\""
],
"cont_sex_missionary_success": [
"\"Stay close.\"",
"\"Fuck me like that.\"",
"\"Do not stop.\"",
"\"I can feel you deep.\"",
"\"Keep looking at me.\""
],
"cont_sex_reverse_cowgirl_failure": [
"\"Let me move from here.\"",
"\"Do not change it like that.\"",
"\"Slow down. Let me keep the rhythm.\"",
"\"Don't buck up into me like that.\"",
"\"No, I need control in this position.\""
],
"cont_sex_reverse_cowgirl_success": [
"\"Watch me ride it.\"",
"\"Do not grab too hard.\"",
"\"I will move.\"",
"\"You like this view.\"",
"\"Stay under me.\""
],
"cont_sex_to_69_failure": [
"\"No. I want your cock, not a new position.\"",
"\"Do not change it like that.\"",
"\"No. Stay with what we're doing.\"",
"\"Don't pull out for sixty-nine.\"",
"\"Stay inside me. Don't switch yet.\""
],
"cont_sex_to_69_success": [
"\"Yeah, we can do that for a bit.\"",
"\"Use your mouth again.\"",
"\"Come here. I want to taste you too.\"",
"\"Okay... switch with me.\"",
"\"I can keep going like this.\""
],
"cont_sex_to_anal_failure": [
"\"No. My pussy is one thing, my ass is another.\"",
"\"Do not change it like that.\"",
"\"No, keep fucking my pussy. Not my ass.\"",
"\"Don't aim for my ass.\"",
"\"Not anal. Stay where you are.\""
],
"cont_sex_to_anal_success": [
"\"Slow. That is not the same hole.\"",
"\"Careful with my ass.\"",
"\"Give me a second first.\"",
"\"Do not push too fast.\"",
"\"Okay... but slowly.\""
],
"cont_sex_wall_failure": [
"\"Careful. The wall makes this hit too hard.\"",
"\"Do not change it like that.\"",
"\"Slow down. That's too much.\"",
"\"Don't pin me so tightly.\"",
"\"Slow down before I lose my footing.\""
],
"cont_sex_wall_success": [
"\"Hold me up.\"",
"\"Against the wall... fuck.\"",
"\"Do not drop me.\"",
"\"Keep it steady.\"",
"\"That is intense.\""
],
"cont_titfuck_keep_failure": [
"\"Careful. Don't shove between my tits like that.\"",
"\"Do not change it like that.\"",
"\"Slow down. I need a second.\"",
"\"Slow down. My chest can feel every push.\"",
"\"No, not that rough against my breasts.\""
],
"cont_titfuck_keep_success": [
"\"Use my tits.\"",
"\"Fuck my tits slowly.\"",
"\"Not too rough.\"",
"\"Keep it between them.\"",
"\"I can feel you twitch.\""
],
"cont_titfuck_let_work_failure": [
"\"Don't just make me do all of it.\"",
"\"Do not change it like that.\"",
"\"Slow down. You're rushing me.\"",
"\"Help me keep the rhythm.\"",
"\"No, don't turn me into the whole show.\""
],
"cont_titfuck_let_work_success": [
"\"Put your cock between my tits.\"",
"\"Do not thrust yet.\"",
"\"I can handle the rhythm.\"",
"\"Stay still. I will do it.\"",
"\"Let me work.\"",
"\"Watch me.\""
],
"cont_titfuck_lick_tip_failure": [
"\"No. Don't push the head toward my mouth.\"",
"\"Do not change it like that.\"",
"\"Not like that. Slow down.\"",
"\"Keep it between my tits, not on my tongue.\"",
"\"Not my mouth. Stay with my chest.\""
],
"cont_titfuck_lick_tip_success": [
"\"Do not push into my mouth.\"",
"\"Keep it between my tits.\"",
"\"Just the tip.\"",
"\"I will lick it.\"",
"\"That makes you twitch.\""
],
"cowgirl_failure": [
"\"No. Not that.\"",
"\"No. I'm not getting on top right now.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not like that. I'm not riding you.\""
],
"cowgirl_pleasure_failure": [
"\"No. Stop there.\"",
"\"Slow down.\"",
"\"Not like that.\"",
"\"Change the angle.\"",
"\"Wait, that does not feel right.\"",
"\"Ease up a little.\"",
"\"Give me a second.\"",
"\"Wrong angle.\""
],
"cowgirl_pleasure_success": [
"\"My pussy is taking you so deep.\"",
"\"Let me use your cock.\"",
"\"Let me ride it.\"",
"\"I want to set the pace.\"",
"\"Stay still. I want to take it.\"",
"\"You feel so good under me.\"",
"\"I can feel every inch like this.\"",
"\"I like being on top.\"",
"\"Do not move. I have it.\""
],
"cowgirl_success": [
"\"Let me ride it.\"",
"\"Stay still. I will move.\"",
"\"I can feel you under me.\"",
"\"Do not grab too hard.\"",
"\"Watch me take it.\""
],
"cunnilingus_to_analingus_failure": [
"\"No, I want your tongue on my cunt.\"",
"\"No, stay on my pussy.\"",
"\"Not my ass right now.\"",
"\"Keep your mouth higher.\"",
"\"Do not lick there.\"",
"\"No. Keep your mouth away from my ass.\""
],
"cunnilingus_to_analingus_success": [
"\"Careful... lower than that is different.\"",
"\"Go slow if you are moving there.\"",
"\"Do not rush my ass.\"",
"\"Okay... carefully.\"",
"\"I feel where your mouth is going.\""
],
"cunnilingus_to_sex_failure": [
"\"I want your mouth, not your cock right now.\"",
"\"Keep your tongue on my pussy.\"",
"\"Do not stop with your mouth yet.\"",
"\"No, keep licking.\"",
"\"Not inside me yet.\"",
"\"Stay down there.\"",
"\"Not yet. Keep licking me.\"",
"\"Do not rush into sex.\""
],
"cunnilingus_to_sex_success": [
"\"Yes... fuck me while I am still wet.\"",
"\"You can put it in now.\"",
"\"Do not waste what your mouth did.\"",
"\"I want to feel you inside me.\"",
"\"Slow first. I am still sensitive.\""
],
"deep_kiss_failure": [
"\"No. Do not push it.\"",
"\"That is enough.\"",
"\"Not deeper.\"",
"\"Too much.\"",
"\"Slow down.\""
],
"deep_kiss_success": [
"\"Mmh... keep kissing me.\"",
"\"Kiss me like that again.\"",
"\"You can use your tongue.\"",
"\"That is a real kiss.\"",
"\"You kiss like you want more.\"",
"\"Careful. That gets dangerous fast.\"",
"\"That is better.\"",
"\"Do not stop yet.\""
],
"deepthroat_pleasure_failure": [
"\"No. That is too deep. Keep it where I can handle it.\"",
"\"Not that far. Slow down.\"",
"\"No. Not that deep.\"",
"\"Slow down. I am not taking it that deep.\"",
"\"No. Shallow is fine. Deeper is not happening.\""
],
"deepthroat_pleasure_success": [
"\"I can handle it. Just do not jam it down my throat.\"",
"\"Mmh... okay. More of your cock. Slow.\"",
"\"Easy... I can take more. Just give me a second.\"",
"\"Fuck... deeper, then. Hold still and let me do it.\"",
"\"Let me breathe, then I will take you deeper.\""
],
"default_failure": [
"\"No. Stop there.\"",
"\"Not like that.\"",
"\"That is not a yes.\"",
"\"Back off for now.\"",
"\"No. Change approach.\""
],
"default_success": [
"\"Alright. Keep going.\"",
"\"That is fine. Do not rush it.\"",
"\"I am still with you.\"",
"\"Careful, but yes.\"",
"\"Keep going like that.\""
],
"demand_anal_sex_failure": [
"\"No. Do not order me to give you my ass.\"",
"\"My ass is not yours to command.\"",
"\"No. That demand is too much.\"",
"\"Do not talk like you can order anal from me.\"",
"\"No. Ask better or stop asking.\""
],
"demand_anal_sex_success": [
"\"Fine. I heard you.\"",
"\"You want my ass because you said so? Careful.\"",
"\"I will let you try, but you listen when I say slow.\"",
"\"That order is dangerous. Do not waste it.\"",
"\"If I obey this, you do not force me.\"",
"\"Alright. But slow, and I mean it.\""
],
"demand_blowjob_failure": [
"\"No. Do not order my mouth onto your cock.\"",
"\"I am not sucking you because you commanded it.\"",
"\"No. That demand gets you nothing.\"",
"\"Do not talk like my mouth belongs to you.\"",
"\"No. Try asking like a person.\""
],
"demand_blowjob_success": [
"\"Fine. I heard the order.\"",
"\"I will use my mouth, but do not push my head.\"",
"\"You want obedience? Stay still.\"",
"\"Alright. I will do it.\"",
"\"Do not get greedy just because I listened.\"",
"\"I will suck you, but you keep yourself under control.\""
],
"demand_cunnilingus_failure": [
"\"No. Do not order me open for your mouth.\"",
"\"I am not spreading because you commanded it.\"",
"\"No. That demand goes too far.\"",
"\"Do not talk like my pussy owes you anything.\"",
"\"No. You do not get to command that.\""
],
"demand_cunnilingus_success": [
"\"Fine. Use your mouth, then.\"",
"\"I heard the order. Make it worth obeying.\"",
"\"Alright. But do not rush me.\"",
"\"If I let you, you do it properly.\"",
"\"You want your mouth on me? Fine.\"",
"\"I will let you try, but you listen.\""
],
"demand_footjob_failure": [
"\"No. Do not order my feet onto you.\"",
"\"I am not doing that because you commanded it.\"",
"\"No. That demand gets you nowhere.\"",
"\"Do not order me around like that.\"",
"\"No. Stop commanding and listen.\""
],
"demand_footjob_success": [
"\"Fine. I will use my feet.\"",
"\"You like ordering me around for this, do you?\"",
"\"I heard you. Stay still.\"",
"\"Do not get smug. I am doing it.\"",
"\"Alright. I will give you that.\"",
"\"I will do it, but you do not get more just because you demanded it.\""
],
"demand_handjob_failure": [
"\"No. Do not order me to touch your cock.\"",
"\"I am not touching you because you commanded it.\"",
"\"No. That demand makes me want to move my hand away.\"",
"\"Do not talk like my hand belongs on you.\"",
"\"No. Ask better.\""
],
"demand_handjob_success": [
"\"Fine. My hand, then.\"",
"\"I heard you.\"",
"\"Stay still if you want me to obey.\"",
"\"I will stroke you, but do not order more than that.\"",
"\"Alright. I will touch you.\"",
"\"Do not get greedy just because I listened.\""
],
"demand_sex_failure": [
"\"No. You do not get to order sex from me.\"",
"\"I am not fucking you because you commanded it.\"",
"\"No. That demand goes too far.\"",
"\"Do not talk like my body is yours to use.\"",
"\"No. Ask better or stop.\""
],
"demand_sex_success": [
"\"Fine. I heard the demand.\"",
"\"I will let you fuck me, but you go slow.\"",
"\"You want sex because you said so? Careful.\"",
"\"Alright. But do not make me regret obeying.\"",
"\"If I say yes to that command, you listen.\"",
"\"Fine. I will do it, but you stay in control.\""
],
"demand_sixty_nine_failure": [
"\"No. Do not order me into that.\"",
"\"You do not get my mouth because you commanded it.\"",
"\"No. That demand is too much.\"",
"\"I am not getting into that position because you ordered it.\"",
"\"No. Stop commanding.\""
],
"demand_sixty_nine_success": [
"\"Fine. Both of us, then.\"",
"\"I heard the order. Do not just take.\"",
"\"Alright. But your mouth works too.\"",
"\"I will do it if you do not get selfish.\"",
"\"Fine. Get ready, then.\"",
"\"If I obey, you make me feel it too.\""
],
"demand_titfuck_failure": [
"\"No. Do not order me to use my tits.\"",
"\"You do not get that by demanding it.\"",
"\"Back off. That command does not work here.\"",
"\"I am not giving you my chest because you ordered it.\"",
"\"No. Stop there.\""
],
"demand_titfuck_success": [
"\"Fine. I will use my tits.\"",
"\"I heard you. Keep your hips under control.\"",
"\"You are really ordering me to do this? Then stay still.\"",
"\"Do not make me regret letting you command this.\"",
"\"Alright. I will give you that.\"",
"\"I will do it, but do not get greedy.\""
],
"dirty_praise_failure": [
"\"Not yet.\"",
"\"Do not talk to me like that yet.\"",
"\"No. Don't talk to me like that.\"",
"\"No. Too early.\"",
"\"That does not work on me.\""
],
"dirty_praise_success": [
"\"You really like that?\"",
"\"Keep talking.\"",
"\"I like hearing you say it.\"",
"\"Say that again.\"",
"\"Tell me what else you like.\""
],
"doggy_failure": [
"\"No. Not that.\"",
"\"No. I'm not turning around for you.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not from behind. Not with that angle.\""
],
"doggy_pleasure_failure": [
"\"No. Stop there.\"",
"\"Slow down.\"",
"\"Not like that.\"",
"\"Change the angle.\"",
"\"Wait, that does not feel right.\"",
"\"Ease up a little.\"",
"\"Give me a second.\"",
"\"Wrong angle.\""
],
"doggy_pleasure_success": [
"\"Hold my hips.\"",
"\"My pussy wants more.\"",
"\"Fuck me harder from behind.\"",
"\"Deeper... yes, like that.\"",
"\"Do not stop. I want it rougher.\"",
"\"Fuck, that angle is deep.\"",
"\"Keep taking me like that.\"",
"\"Use that angle again.\"",
"\"Yes... right there.\""
],
"doggy_success": [
"\"Hold my hips.\"",
"\"Fuck me from behind.\"",
"\"Not too fast.\"",
"\"I can feel you deep.\"",
"\"Keep it steady.\""
],
"end_orgasm_her_1": [
"\"That was good. I needed that.\"",
"\"There... yes. That hit me.\"",
"\"Do not move yet.\"",
"\"I am still sensitive.\"",
"\"Give me a second.\""
],
"end_orgasm_her_2": [
"\"Twice... fuck.\"",
"\"You made me come twice.\"",
"\"I am still shaking.\"",
"\"Do not move yet.\"",
"\"My legs are not ready.\""
],
"end_orgasm_her_3": [
"\"Fuck... my whole body is shaking.\"",
"\"Three times? I can barely think.\"",
"\"I need a second.\"",
"\"I cannot think straight.\"",
"\"My body is still twitching.\""
],
"end_orgasm_her_4": [
"\"I cannot believe you kept me there that long.\"",
"\"Four... I am a mess.\"",
"\"Do not ask me to stand up yet.\"",
"\"I can barely move.\"",
"\"My body needs a minute.\""
],
"end_orgasm_her_5": [
"\"I feel like my legs forgot what they are for.\"",
"\"That was too much... in the best way.\"",
"\"Five... I am completely ruined.\"",
"\"Do not touch me for a second.\"",
"\"I need to remember how to breathe.\""
],
"end_orgasm_her_6": [
"\"Six... I am gone.\"",
"\"I cannot even think right now.\"",
"\"You put me in heaven.\"",
"\"I need a minute before I move.\"",
"\"My body is still shaking.\""
],
"end_orgasm_none_her_many_you": [
"\"You came that many times and I did not come once? Come on.\"",
"\"You had a lot of fun. I need you to care about mine too.\"",
"\"I am still worked up, and you know it.\"",
"\"That got way too one-sided.\"",
"\"Next time, do not leave me hanging like that.\""
],
"end_orgasm_none_her_one_you": [
"\"You came, but I did not. That was not exactly fair.\"",
"\"You finished. I am still waiting.\"",
"\"I did not get there.\"",
"\"Next time, remember I need to finish too.\"",
"\"That was mostly yours.\""
],
"end_orgasm_you_0": [
"\"You did not even come.\"",
"\"I noticed you held back.\"",
"\"You stopped before you finished.\"",
"\"You are still wound up.\"",
"\"You left yourself unfinished.\""
],
"end_orgasm_you_0_guilt": [
"\"You made me come that hard and you did not even finish? I feel bad now.\"",
"\"I should have paid more attention to you.\"",
"\"You are still hard. I should not have missed that.\"",
"\"I got carried away and left you hanging.\"",
"\"Let me make that up to you next time.\""
],
"end_orgasm_you_1": [
"\"That was enough for both of us, I think.\"",
"\"Good. That felt right.\"",
"\"You finished hard.\"",
"\"I liked feeling you let go.\"",
"\"You look better now.\""
],
"end_orgasm_you_2": [
"\"Twice? You were really into that.\"",
"\"We had too much fun.\"",
"\"You came twice. I am impressed.\"",
"\"I like that I pulled that out of you.\"",
"\"You really needed that second one.\""
],
"end_orgasm_you_3": [
"\"We came so many times. That chemistry is insane.\"",
"\"Fuck, we are dangerous together.\"",
"\"You came so much I lost count.\"",
"\"That was more than I expected.\"",
"\"I can still feel how intense that got.\""
],
"finger_ass_failure": [
"\"Move your hand back.\"",
"\"No. Not there.\"",
"\"Do not touch me like that yet.\"",
"\"That is too far.\"",
"\"No. You are rushing it.\""
],
"finger_ass_success": [
"\"Slow with my ass.\"",
"\"Do not force it.\"",
"\"That is tight... careful.\"",
"\"Use your finger slowly.\"",
"\"Fuck, there? Okay, slow.\""
],
"cont_anal_finger_keep_failure": [
"\"Slow down. I'm tensing up.\"",
"\"Not that deep.\"",
"\"Pull back a little.\"",
"\"Stop for a second.\"",
"\"Keep your hand still.\""
],
"cont_anal_finger_keep_success": [
"\"Keep it slow.\"",
"\"A little deeper. That's fine.\"",
"\"Keep moving your finger like that.\"",
"\"Fuck... my ass is getting used to it.\"",
"\"Don't pull it out yet.\""
],
"cont_anal_finger_to_fingering_failure": [
"\"No. Keep your hand where it is.\"",
"\"Don't switch yet.\"",
"\"Leave my pussy alone for now.\"",
"\"Keep fingering my ass.\"",
"\"Not there. Stay with my ass.\""
],
"cont_anal_finger_to_fingering_success": [
"\"Use your other hand on my pussy.\"",
"\"Yes. Finger my pussy now.\"",
"\"Put your fingers inside me.\"",
"\"Touch my clit too.\"",
"\"Fuck... keep your fingers there.\""
],
"cont_anal_finger_to_analingus_failure": [
"\"No. Keep using your finger.\"",
"\"Don't put your mouth there.\"",
"\"Not your tongue.\"",
"\"Stay with your hand.\"",
"\"Don't switch yet.\""
],
"cont_anal_finger_to_analingus_success": [
"\"Use your tongue.\"",
"\"Yes... lick my ass.\"",
"\"Keep your mouth there.\"",
"\"Slow. I'm still sensitive.\"",
"\"Fuck, do that again.\""
],
"finger_pussy_failure": [
"\"Move your hand back.\"",
"\"No. Not there.\"",
"\"Do not touch me like that yet.\"",
"\"That is too far.\"",
"\"No. You are rushing it.\""
],
"finger_pussy_success": [
"\"Your fingers... yes.\"",
"\"Keep them inside me.\"",
"\"Curl them there.\"",
"\"Do not stop fingering me.\"",
"\"Fuck... that is right.\""
],
"fingering_pleasure_failure": [
"\"No fingers.\"",
"\"Your hand moves away now.\"",
"\"Enough with your fingers.\"",
"\"Stop fingering me.\"",
"\"Not inside me.\""
],
"fingering_pleasure_success": [
"\"Keep your fingers inside me.\"",
"\"Fuck... your hand.\"",
"\"Curl them there.\"",
"\"Do not stop fingering me.\"",
"\"Yes, inside.\""
],
"fingering_tease_failure": [
"\"No. Stop there.\"",
"\"Not that.\"",
"\"No, that is not working.\"",
"\"Stop teasing and slow down.\"",
"\"Wrong rhythm.\"",
"\"Not like that.\""
],
"fingering_tease_success": [
"\"Yes. Keep your fingers there.\"",
"\"Keep doing that, but do not stop.\"",
"\"Do not tease me too much.\"",
"\"Mmh... that is cruel.\"",
"\"You are making me chase it.\""
],
"flirt_bold_failure": [
"\"No. Too much.\"",
"\"That was not smooth.\"",
"\"Do not try that again right now.\"",
"\"You overplayed it.\"",
"\"That did not land.\""
],
"flirt_bold_success": [
"\"You decided to say that out loud?\"",
"\"I will give you credit for nerve.\"",
"\"Bold. Risky, but bold.\"",
"\"Careful... I noticed that.\"",
"\"I wasn't expecting that.\""
],
"flirt_failure": [
"\"That did not earn the look you wanted.\"",
"\"No. Do not touch me like that.\"",
"\"Too early.\"",
"\"That sounded forced.\"",
"\"You reached past the mood.\"",
"\"No. Build toward it first.\""
],
"flirt_soft_failure": [
"\"No. That sounded forced.\"",
"\"Too early.\"",
"\"That did not work.\"",
"\"Do not push it.\"",
"\"Keep it normal.\""
],
"flirt_soft_success": [
"\"That was smooth enough.\"",
"\"You are trying to be charming.\"",
"\"Not bad. Keep it light.\"",
"\"I heard that.\"",
"\"Okay. I liked that.\""
],
"flirt_success": [
"\"Do not start that unless you can finish the thought.\"",
"\"Careful. That one almost worked too well.\"",
"\"You are making it difficult to ignore you.\"",
"\"Say it again like you mean it.\"",
"\"That was bold. I noticed.\""
],
"footjob_pleasure_failure": [
"\"No. That's enough with your feet.\"",
"\"No, I need to stop that.\"",
"\"My legs are done for now.\"",
"\"Not more. Change it.\"",
"\"I cannot keep that angle.\""
],
"footjob_pleasure_success": [
"\"Do not move too much. Let my feet handle it.\"",
"\"Stay there. I can feel when it works.\"",
"\"You are harder than I expected against my feet.\"",
"\"You really like this. I can tell.\"",
"\"Like that? I can keep doing it.\""
],
"gaze_ass_failure": [
"\"Stop staring at my ass.\"",
"\"Do not be obvious.\"",
"\"That is enough looking.\"",
"\"Eyes up.\"",
"\"Not there.\""
],
"gaze_ass_success": [
"\"My ass has your attention, apparently.\"",
"\"If you stare, do not act innocent.\"",
"\"You looked. I noticed.\"",
"\"Careful. That look says a lot.\"",
"\"You are not subtle at all.\""
],
"gaze_chest_failure": [
"\"Eyes up.\"",
"\"My face is up here.\"",
"\"Do not stare at my chest.\"",
"\"You are being obvious.\"",
"\"Not there.\""
],
"gaze_chest_success": [
"\"Eyes are higher, but I noticed.\"",
"\"Careful. You are making it obvious.\"",
"\"I know where you are looking.\"",
"\"That look is not subtle.\"",
"\"If you look, at least own it.\""
],
"gaze_failure": [
"\"You are making the wrong part of this loud.\"",
"\"Eyes up.\"",
"\"Look at my face before you lose the room.\"",
"\"Stop looking at me like that.\"",
"\"Not now.\"",
"\"That was too much too soon.\""
],
"gaze_legs_failure": [
"\"Eyes up.\"",
"\"Do not stare.\"",
"\"That is enough looking.\"",
"\"You are being obvious.\"",
"\"Not there.\""
],
"gaze_legs_success": [
"\"Careful where your eyes settle.\"",
"\"At least you are honest about it.\"",
"\"You like my legs, then?\"",
"\"That was not subtle.\"",
"\"I saw that look.\""
],
"gaze_success": [
"\"If you are going to stare, do it honestly.\"",
"\"Yes. Like that.\"",
"\"You are not subtle.\"",
"\"I can feel you looking.\"",
"\"Do not look away now.\""
],
"gentle_command_failure": [
"\"No. I am not doing that.\"",
"\"Do not order me around yet.\"",
"\"That does not work on me.\"",
"\"Not happening.\"",
"\"You do not have that kind of pull yet.\""
],
"gentle_command_success": [
"\"Do not mistake this for surrender.\"",
"\"Okay. Show me.\"",
"\"I heard you. Do not push it.\"",
"\"Okay. Like this?\"",
"\"Fine. I can follow that much.\"",
"\"Say it like that and maybe.\""
],
"grind_together_failure": [
"\"Move your hand back.\"",
"\"No. Not there.\"",
"\"Do not touch me like that yet.\"",
"\"That is too far.\"",
"\"No. You are rushing it.\""
],
"grind_together_success": [
"\"That is making it harder to think.\"",
"\"I can feel you.\"",
"\"Careful. That is not subtle.\"",
"\"Mmh... keep it slow.\"",
"\"You are grinding against me.\""
],
"guide_position_failure": [
"\"No. I am not doing that.\"",
"\"Do not order me around yet.\"",
"\"That does not work on me.\"",
"\"Not happening.\"",
"\"You do not have that kind of pull yet.\""
],
"guide_position_success": [
"\"There?\"",
"\"Fine. Guide me, then.\"",
"\"Slowly. I am moving.\"",
"\"You are very sure of yourself.\"",
"\"Tell me where you want me.\""
],
"handjob_pleasure_failure": [
"\"No more. I need a second.\"",
"\"Your cock is not in my hand now.\"",
"\"Do not put my hand back there.\"",
"\"I am letting go.\"",
"\"Enough stroking.\""
],
"handjob_pleasure_success": [
"\"You are getting hard in my hand.\"",
"\"Like this?\"",
"\"Stay still.\"",
"\"I can feel you pulse.\"",
"\"Do not come too fast.\""
],
"handjob_to_blowjob_failure": [
"\"No, my hand is enough.\"",
"\"Not with my mouth right now.\"",
"\"Do not push it to my lips.\"",
"\"Hands only for now.\"",
"\"I will keep stroking it.\"",
"\"I am not sucking it yet.\""
],
"handjob_to_blowjob_success": [
"\"I can use my mouth for a bit.\"",
"\"Stay still.\"",
"\"Let me take over.\"",
"\"Okay... my mouth then.\"",
"\"Do not push. I have it.\""
],
"hold_eye_contact_command_failure": [
"\"No. I am not doing that.\"",
"\"Do not order me around yet.\"",
"\"That does not work on me.\"",
"\"Not happening.\"",
"\"You do not have that kind of pull yet.\""
],
"hold_eye_contact_command_success": [
"\"Fine. Eyes on you.\"",
"\"You want my attention? You have it.\"",
"\"I am looking.\"",
"\"That is a dangerous order.\"",
"\"Do not blink first.\""
],
"hug_her_failure": [
"\"No hug.\"",
"\"Not yet.\"",
"\"Do not pull me in.\"",
"\"Too close.\"",
"\"No. Keep some space.\""
],
"hug_her_success": [
"\"Yes. Like that.\"",
"\"Alright. Just a hug.\"",
"\"Do not squeeze too hard.\"",
"\"That is warmer than I expected.\"",
"\"Okay... this is nice.\"",
"\"You get one.\""
],
"inquire_jobs_failure": [
"\"No. I am not sending you anywhere yet.\"",
"\"Ask me when I know you better.\"",
"\"I do not have a lead for you.\"",
"\"Not right now.\"",
"\"No. That is not something I am sharing yet.\""
],
"inquire_jobs_success": [
"\"There may be something worth checking.\"",
"\"Ask around carefully. People remember who wastes their time.\"",
"\"You are looking for work, not miracles. Good.\"",
"\"I might know a lead.\"",
"\"Fine. I can point you somewhere.\""
],
"inquire_training_failure": [
"\"No. I am not teaching you that yet.\"",
"\"Ask me when I know you better.\"",
"\"Not giving you that advice right now.\"",
"\"No. Figure out the basics first.\"",
"\"Not yet.\""
],
"inquire_training_success": [
"\"Training only helps if you stay with it.\"",
"\"Fine. I know a place to start.\"",
"\"You sound like you might actually use the advice.\"",
"\"Sure. What do you want to learn?\"",
"\"There are a few options.\""
],
"introduce_dominant_failure": [
"\"No. You do not get to start like that.\"",
"\"That is not going to work.\"",
"\"Try being less impressed with yourself.\"",
"\"Wrong start.\"",
"\"No. Not from you.\""
],
"introduce_dominant_success": [
"\"Confident. I will give you that. What is your name?\"",
"\"That is a strong opening. Now say something worth it.\"",
"\"Careful. I heard the tone, and I am still listening.\"",
"\"You like taking the lead, don't you? Fine, lead.\"",
"\"Bold. I have not decided if that is good or annoying yet.\"",
"\"I can talk about that.\""
],
"introduce_failure": [
"\"Hi. That is all you get for now.\"",
"\"Not a great start.\"",
"\"Try again with less noise.\"",
"\"I heard you.\"",
"\"That did not make much of an impression.\""
],
"introduce_success": [
"\"That is a decent start. Keep talking.\"",
"\"I am {name}. What should I call you?\"",
"\"Alright. You have my attention. What is your name?\"",
"\"Fine, I will bite. What brought you over?\"",
"\"At least you opened like a normal person. Go on.\""
],
"invite_coffee_failure": [
"\"No. Not now.\"",
"\"That is not happening today.\"",
"\"I am not giving you that.\"",
"\"You are asking too soon.\"",
"\"No. Leave that for later.\""
],
"invite_coffee_success": [
"\"Coffee is safe enough. Maybe.\"",
"\"Fine, coffee can happen.\"",
"\"Maybe. I could use coffee.\"",
"\"That sounds simple. I like simple.\"",
"\"A public table first. That works.\""
],
"invite_gallery_failure": [
"\"No. Not now.\"",
"\"That is not happening today.\"",
"\"I am not giving you that.\"",
"\"You are asking too soon.\"",
"\"No. Leave that for later.\""
],
"invite_gallery_success": [
"\"A gallery is not a bad idea.\"",
"\"Maybe. I want to see what you notice.\"",
"\"That sounds better than a drink.\"",
"\"Fine. Show me your taste.\"",
"\"That could be interesting.\""
],
"invite_meal_failure": [
"\"Not today. Dinner at your place is still too private.\"",
"\"No. I am not ready to come over for that.\"",
"\"I do not know you well enough for dinner at your place.\"",
"\"No. Somewhere public would be better.\"",
"\"I appreciate the offer, but I am not coming over yet.\"",
"\"Tempting, but too much right now.\"",
"\"It sounds nice, but not today.\"",
"\"Maybe another time. Not tonight.\""
],
"invite_meal_success": [
"\"Okay. A meal at your place sounds good.\"",
"\"If you are cooking, I am curious.\"",
"\"Alright. I would like to try your cooking.\"",
"\"That sounds nice. I would like that.\"",
"\"Dinner sounds better than just coming over.\"",
"\"I would like to see what you cook.\"",
"\"I can do dinner. That sounds comfortable.\"",
"\"That sounds nice. I will give it a try.\""
],
"invite_private_movie_failure": [
"\"No. Not now.\"",
"\"That is not happening today.\"",
"\"I am not giving you that.\"",
"\"You are asking too soon.\"",
"\"No. Leave that for later.\""
],
"invite_private_movie_success": [
"\"A movie. Privately. I heard both parts.\"",
"\"A private movie can happen. Carefully.\"",
"\"I can talk about a movie.\"",
"\"Maybe. I choose the movie.\"",
"\"That sounds like an excuse, but not a bad one.\"",
"\"Fine, but the door stays my decision.\""
],
"invite_room_failure": [
"\"No. Not now.\"",
"\"That is not happening today.\"",
"\"I am not giving you that.\"",
"\"You are asking too soon.\"",
"\"No. Leave that for later.\""
],
"invite_room_success": [
"\"Your place. That is not a small ask.\"",
"\"Maybe, but I decide what happens there.\"",
"\"Fine, but do not get ahead of yourself.\"",
"\"Private means careful.\"",
"\"I hear what you are asking.\""
],
"invite_workout_failure": [
"\"No. Not now.\"",
"\"That is not happening today.\"",
"\"I am not giving you that.\"",
"\"You are asking too soon.\"",
"\"No. Leave that for later.\""
],
"invite_workout_success": [
"\"Training together? Maybe.\"",
"\"Do not make me regret saying yes.\"",
"\"Fine. Sweat first, flirting later.\"",
"\"If you keep up, maybe.\"",
"\"That could be useful.\""
],
"kiss_cheek_failure": [
"\"No. Not that.\"",
"\"Too soon.\"",
"\"Do not kiss me yet.\"",
"\"Not now.\"",
"\"Back up.\""
],
"kiss_cheek_success": [
"\"That was gentle.\"",
"\"That was sweet.\"",
"\"That was nice.\"",
"\"That was sweet.\"",
"\"You can do that again.\""
],
"kiss_lips_failure": [
"\"No kiss.\"",
"\"Too soon.\"",
"\"Do not try that yet.\"",
"\"Not now.\"",
"\"Back up.\""
],
"kiss_lips_success": [
"\"I liked that kiss.\"",
"\"There. That was my mouth.\"",
"\"You wanted that kiss.\"",
"\"Careful. Lips mean more.\"",
"\"That was good.\"",
"\"Do that again, slowly.\"",
"\"Stay close.\"",
"\"Again, but do not rush it.\""
],
"lick_pussy_failure": [
"\"No. Not that.\"",
"\"No. I'm not ready for your mouth.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not there. Keep your tongue away for now.\""
],
"lick_pussy_success": [
"\"Use your tongue there.\"",
"\"Yes... my pussy.\"",
"\"Stay on my clit.\"",
"\"Lick me slowly.\"",
"\"Do not stop.\""
],
"look_eyes_failure": [
"\"Do not stare me down.\"",
"\"Too much.\"",
"\"Stop trying to make that a thing.\"",
"\"Not now.\"",
"\"You are overdoing it.\""
],
"look_eyes_success": [
"\"You are not looking away.\"",
"\"You really don't look away.\"",
"\"Steady. I noticed.\"",
"\"You have my attention.\"",
"\"Do not waste that look.\""
],
"make_her_hold_still_failure": [
"\"No. I am not doing that.\"",
"\"Do not order me around yet.\"",
"\"That does not work on me.\"",
"\"Not happening.\"",
"\"You do not have that kind of pull yet.\""
],
"make_her_hold_still_success": [
"\"Okay. Show me.\"",
"\"Still. Fine.\"",
"\"You like giving orders.\"",
"\"Do not make me regret obeying.\"",
"\"I can hold still. Briefly.\"",
"\"Careful. That command gets noticed.\""
],
"massage_ass_failure": [
"\"Back to the massage, not that.\"",
"\"Do not move your hands there.\"",
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"No. Don't work my ass like that.\""
],
"massage_ass_success": [
"\"You like my ass that much?\"",
"\"Keep your hands steady.\"",
"\"You are very low now.\"",
"\"Mmh... not so rough.\"",
"\"Careful. That feels good.\""
],
"massage_back_failure": [
"\"Back to the massage, not that.\"",
"\"Do not move your hands there.\"",
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"Too much. Keep the massage lighter.\""
],
"massage_back_success": [
"\"Keep your hands like that.\"",
"\"I needed that more than I thought.\"",
"\"That is good.\"",
"\"Lower, but not too low.\"",
"\"You found the tension.\""
],
"massage_breasts_failure": [
"\"Back to the massage, not that.\"",
"\"Do not move your hands there.\"",
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"No. My breasts aren't part of the massage yet.\""
],
"massage_breasts_success": [
"\"Mmh... my tits are sensitive.\"",
"\"Careful with them.\"",
"\"Do not squeeze too hard.\"",
"\"That feels too good.\"",
"\"Keep your thumbs slow.\""
],
"massage_failure": [
"\"Reset your hands.\"",
"\"Stop. That is not helping.\"",
"\"Too rough.\"",
"\"Lighter. Listen to my body.\"",
"\"That is not the spot.\""
],
"massage_inner_thighs_failure": [
"\"Back to the massage, not that.\"",
"\"Do not move your hands there.\"",
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"Careful. That is getting too close.\""
],
"massage_inner_thighs_success": [
"\"Careful between my thighs.\"",
"\"You know what you are doing there.\"",
"\"That is close.\"",
"\"Mmh... not too fast.\"",
"\"Stay slow.\""
],
"massage_legs_failure": [
"\"Back to the massage, not that.\"",
"\"Do not move your hands there.\"",
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"Softer. You're making my legs tense.\""
],
"massage_legs_success": [
"\"Your hands are warm.\"",
"\"That helps. Keep going.\"",
"\"That helps.\"",
"\"Stay slow.\"",
"\"Not too high yet.\""
],
"massage_lower_back_failure": [
"\"Back to the massage, not that.\"",
"\"Do not move your hands there.\"",
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"Easy there. Don't push it lower.\""
],
"massage_lower_back_success": [
"\"Careful. That is getting low.\"",
"\"Do not pretend that is innocent.\"",
"\"Mmh... slow there.\"",
"\"That is dangerous territory.\"",
"\"Keep it controlled.\""
],
"massage_neck_failure": [
"\"Back to the massage, not that.\"",
"\"Do not move your hands there.\"",
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"Not so close to my neck.\""
],
"massage_neck_success": [
"\"Careful there.\"",
"\"That is sensitive.\"",
"\"Slowly. That feels good.\"",
"\"Do not press too hard.\"",
"\"Mmh... keep it controlled.\""
],
"massage_pussy_bare_failure": [
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"Do not move your hands there.\"",
"\"No. Your fingers aren't going there bare.\"",
"\"Back to the massage, not that.\""
],
"massage_pussy_bare_success": [
"\"Touch my pussy slowly.\"",
"\"Do not stop rubbing my clit.\"",
"\"That is right on my slit.\""
],
"massage_pussy_fabric_failure": [
"\"Back to the massage, not that.\"",
"\"Do not move your hands there.\"",
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"No. Not between my legs like that.\""
],
"massage_pussy_fabric_success": [
"\"Oh... your hands feel good.\"",
"\"Do not go inside yet.\"",
"\"Keep rubbing me like that.\"",
"\"That is making me wet.\"",
"\"Slow. The cloth is enough.\""
],
"massage_shoulders_failure": [
"\"Back to the massage, not that.\"",
"\"Do not move your hands there.\"",
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"Ease up. My shoulders aren't a handle.\""
],
"massage_shoulders_success": [
"\"Do not rush your hands.\"",
"\"That helps. Keep going.\"",
"\"Right there.\"",
"\"Right there. That feels good.\"",
"\"Keep it steady.\"",
"\"That is better.\""
],
"massage_start_failure": [
"\"Back to the massage, not that.\"",
"\"Do not move your hands there.\"",
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"No. I don't want a massage right now.\""
],
"massage_start_success": [
"\"Start slow.\"",
"\"Fine. Useful hands only.\"",
"\"Alright. Show me you can be careful.\"",
"\"Shoulders first.\"",
"\"Do not make it weird.\""
],
"massage_success": [
"\"Your hands are finally useful.\"",
"\"That helps. Keep going.\"",
"\"Mmh... right there.\"",
"\"Do not rush. That feels good.\"",
"\"Deeper there, slowly.\"",
"\"Yes. You found it.\""
],
"massage_tongue_ass_failure": [
"\"Back to the massage, not that.\"",
"\"Do not put your mouth there.\"",
"\"No. Not with your mouth.\"",
"\"Keep it safer than that.\"",
"\"No. Your mouth isn't going to my ass.\""
],
"massage_tongue_ass_success": [
"\"Do not rush my ass.\"",
"\"Your tongue... slow.\"",
"\"Oh fuck, there?\"",
"\"That is filthy.\"",
"\"Keep it careful.\""
],
"massage_tongue_pussy_failure": [
"\"Back to the massage, not that.\"",
"\"Do not put your mouth there.\"",
"\"No. Not with your mouth.\"",
"\"Keep it safer than that.\"",
"\"No. I'm not turning this into oral.\""
],
"massage_tongue_pussy_success": [
"\"Oh fuck... your tongue.\"",
"\"Lick my pussy slowly.\"",
"\"Stay on my clit.\"",
"\"Do not stop now.\"",
"\"That is filthy... keep going.\""
],
"massage_vagina_failure": [
"\"No. Not there.\"",
"\"Keep it safer than that.\"",
"\"Do not move your hands there.\"",
"\"No. Don't turn the massage into that.\"",
"\"Back to the massage, not that.\""
],
"massage_vagina_success": [
"\"Mmh... keep rubbing my pussy.\"",
"\"Stay there. Slow.\"",
"\"Do not stop rubbing me.\"",
"\"That feels good. Keep it steady.\"",
"\"Use your fingers like that.\"",
"\"Your fingers are right there.\"",
"\"Keep it gentle, but do not stop.\""
],
"missionary_failure": [
"\"No. Not that.\"",
"\"No. I'm not lying under you right now.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not like this. I'm not ready for sex.\""
],
"missionary_pleasure_failure": [
"\"No. Stop there.\"",
"\"Slow down.\"",
"\"Not like that.\"",
"\"Change the angle.\"",
"\"Wait, that does not feel right.\"",
"\"Ease up a little.\"",
"\"Give me a second.\"",
"\"Wrong angle.\""
],
"missionary_pleasure_success": [
"\"Your cock feels so good inside me.\"",
"\"Keep your cock right there.\"",
"\"Fuck me like that.\"",
"\"You feel so deep like this.\"",
"\"Move exactly like that... yes.\"",
"\"Look at me while you fuck me.\"",
"\"Do not pull out yet.\"",
"\"Fuck me slowly like this.\"",
"\"Stay close. I like it like this.\""
],
"missionary_success": [
"\"Slow... stay close.\"",
"\"I can feel all of you.\"",
"\"Fuck me like that.\"",
"\"Do not rush.\"",
"\"Keep looking at me.\""
],
"mutual_oral_pleasure_failure": [
"\"Mouths off. Now.\"",
"\"No more. I need to breathe.\"",
"\"We are stopping this position.\"",
"\"I need out of this.\"",
"\"Enough. Slow down.\""
],
"mutual_oral_pleasure_success": [
"\"Do not stop your tongue.\"",
"\"I can feel you in my mouth.\"",
"\"Keep licking while I suck you.\"",
"\"Mmh... both of us.\"",
"\"Stay in position.\""
],
"oral_giving_pleasure_failure": [
"\"Your cock stays away from my mouth.\"",
"\"No more. Give me a second.\"",
"\"I am taking my mouth off.\"",
"\"Do not push my head.\"",
"\"I said enough.\""
],
"oral_giving_pleasure_success": [
"\"Your cock is twitching.\"",
"\"Mmh... like this?\"",
"\"I can feel you getting harder.\"",
"\"Do not push too fast.\"",
"\"Stay still.\""
],
"oral_receiving_pleasure_failure": [
"\"No more mouth.\"",
"\"Your tongue is done.\"",
"\"Move away from my pussy.\"",
"\"Enough. Mouth off.\"",
"\"Stop licking me.\""
],
"oral_receiving_pleasure_success": [
"\"Keep licking my pussy.\"",
"\"Stay on my clit.\"",
"\"Use your tongue.\"",
"\"Do not stop.\"",
"\"Fuck... there.\""
],
"orgasm_success": [
"\"Cum for me.\"",
"\"Fuck... I am coming.\"",
"\"Do not stop, I am right there.\"",
"\"Yes... yes, keep going.\"",
"\"Oh fuck, that hit hard.\""
],
"penetration_pleasure_failure": [
"\"Your cock comes out now.\"",
"\"I said stop thrusting.\"",
"\"Stop fucking me.\"",
"\"Pull out.\"",
"\"No more sex.\""
],
"penetration_pleasure_success": [
"\"Keep fucking me.\"",
"\"Do not stop.\"",
"\"Slow... yes.\"",
"\"I can feel you deep.\"",
"\"Stay with me.\""
],
"pet_over_clothes_failure": [
"\"Move your hand back.\"",
"\"No. Not there.\"",
"\"Do not touch me like that yet.\"",
"\"That is too far.\"",
"\"No. You are rushing it.\""
],
"pet_over_clothes_success": [
"\"Through my clothes is enough for now.\"",
"\"Do not rush under the fabric.\"",
"\"Okay. Slowly.\"",
"\"Careful. I can still feel that.\"",
"\"Oh... your hands feel nice.\"",
"\"Keep it slow.\""
],
"petting_failure": [
"\"Hands off for now.\"",
"\"Do not keep touching me like that.\"",
"\"Not there.\"",
"\"That is too familiar.\"",
"\"No more petting.\""
],
"petting_success": [
"\"Careful with your hands.\"",
"\"Stay there. Do not rush it.\"",
"\"That is enough for now.\"",
"\"Slow. I am letting this stay.\"",
"\"Do not make me stop you.\""
],
"player_undress_failure": [
"\"You can get naked. That does not mean I am ready.\"",
"\"Slow down. I need to catch up.\"",
"\"That was your choice, not mine.\"",
"\"I did not stop you. I am just not there with you yet.\"",
"\"Put your clothes back on.\""
],
"player_undress_success": [
"\"Yes. Keep your eyes on me.\"",
"\"So that is what you wanted me to see.\"",
"\"Keep going, but do not expect me to pretend I am not watching.\"",
"\"Okay. Slowly.\"",
"\"Alright... I am looking.\""
],
"refusal_ask_low_failure": [
"\"What?! No, of course I do not want to.\"",
"\"No. Why would you even ask me that right now?\"",
"\"Absolutely not. You are not close to that.\"",
"\"What made you think I would say yes to that?\"",
"\"Do not ask me that like it is normal.\"",
"\"No. I'm not ready for that.\"",
"\"I am not doing that with you. Not now.\"",
"\"No. That is way too much.\""
],
"refusal_ask_normal_failure": [
"\"No. Ask me again when this feels less sudden.\"",
"\"No. Not yet.\"",
"\"I do not want to do that yet.\"",
"\"Maybe later, but not now.\"",
"\"I am not ready for that.\"",
"\"I need more time before that.\"",
"\"The timing is not right.\"",
"\"I am saying no for now.\""
],
"refusal_beg_low_failure": [
"\"I do not care how much you want this. It is not going to happen.\"",
"\"Begging is not going to change my answer.\"",
"\"No. Do not plead with me for that.\"",
"\"I am not doing that because you begged.\"",
"\"No. Don't ask me like that.\"",
"\"No. That is desperate, not convincing.\"",
"\"No. Begging will not make me want this.\"",
"\"No. You cannot talk me into that by pleading.\""
],
"refusal_beg_normal_failure": [
"\"Maybe another time, but not like this.\"",
"\"I get it, but my answer is still no.\"",
"\"I am not saying never. I am saying not now.\"",
"\"I know you want it, but not now.\"",
"\"Do not make it harder to say no.\"",
"\"I am not there yet.\"",
"\"Please don't ask me like that.\"",
"\"Ask me normally another time.\""
],
"refusal_command_low_failure": [
"\"No. I am not doing that.\"",
"\"Do not order me around yet.\"",
"\"That does not work on me.\"",
"\"Not happening.\"",
"\"You do not have that kind of pull yet.\""
],
"refusal_command_normal_failure": [
"\"No. I am not doing that.\"",
"\"Do not order me around yet.\"",
"\"That does not work on me.\"",
"\"Not happening.\"",
"\"You do not have that kind of pull yet.\""
],
"remove_panties_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"remove_panties_success": [
"\"Careful with my panties.\"",
"\"That is the last layer.\"",
"\"Slowly.\"",
"\"You know what this means.\"",
"\"Fine. Do it carefully.\""
],
"remove_your_clothes_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"remove_your_clothes_success": [
"\"Good. Let me see.\"",
"\"Good. Fair is fair.\"",
"\"Let me see, then.\"",
"\"Do not make it awkward.\"",
"\"Fine. Your turn.\""
],
"reverse_cowgirl_failure": [
"\"No. Not that.\"",
"\"No. I'm not turning around on your cock.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not that position. I'm not ready.\""
],
"reverse_cowgirl_pleasure_failure": [
"\"No. Stop there.\"",
"\"Slow down.\"",
"\"Not like that.\"",
"\"Change the angle.\"",
"\"Wait, that does not feel right.\"",
"\"Ease up a little.\"",
"\"Give me a second.\"",
"\"Wrong angle.\""
],
"reverse_cowgirl_pleasure_success": [
"\"Watch my ass while I ride you.\"",
"\"Look at how I take your cock.\"",
"\"My pussy is soaking you.\"",
"\"I can take it deeper like this.\"",
"\"Do not move, let me work.\"",
"\"Fuck... this angle feels good.\"",
"\"I want to ride you backwards.\"",
"\"Stay hard for me.\"",
"\"Let me bounce on it.\""
],
"reverse_cowgirl_success": [
"\"Do not rush my hips.\"",
"\"Watch from there.\"",
"\"I will take it like this.\"",
"\"You like the view?\"",
"\"Let me move.\""
],
"rub_breasts_fabric_failure": [
"\"Not my tits.\"",
"\"Hands off my chest.\"",
"\"No. Not there.\"",
"\"Too much.\"",
"\"Stop that.\""
],
"rub_breasts_fabric_success": [
"\"Careful.\"",
"\"You like doing that through my clothes?\"",
"\"Not too much.\"",
"\"I can feel that.\"",
"\"Slow.\""
],
"rub_pussy_fabric_failure": [
"\"Move your hand back.\"",
"\"No. Not there.\"",
"\"Do not touch me like that yet.\"",
"\"That is too far.\"",
"\"No. You are rushing it.\""
],
"rub_pussy_fabric_success": [
"\"Oh... yes, like that.\"",
"\"Keep rubbing my pussy like that.\"",
"\"Do not go inside yet.\"",
"\"That is making me wet.\"",
"\"Slow. The cloth is enough.\""
],
"rubbing_pleasure_failure": [
"\"Move your hand away.\"",
"\"Stop rubbing me.\"",
"\"No more friction.\"",
"\"Do not grind that there.\"",
"\"Enough. Stop rubbing.\""
],
"rubbing_pleasure_success": [
"\"Oh... keep touching me like that.\"",
"\"Keep rubbing there.\"",
"\"Do not go inside yet.\"",
"\"That feels good.\"",
"\"Slow. Keep it like that.\""
],
"rubbing_to_fingering_failure": [
"\"Do not take my panties off yet.\"",
"\"No. Stop there.\"",
"\"No. Not inside.\"",
"\"The rubbing was enough.\"",
"\"Not that far right now.\""
],
"rubbing_to_fingering_success": [
"\"Careful. That is direct now.\"",
"\"You got past the clothes.\"",
"\"Slow... I feel your fingers now.\"",
"\"That is more than rubbing.\"",
"\"Okay. Just do not rush.\""
],
"sex_sex_position_switch_failure": [
"\"No. Stop there.\"",
"\"Not that.\"",
"\"Wait, we lost it.\"",
"\"No, the angle is wrong.\"",
"\"Go back for a second.\""
],
"sex_sex_position_switch_success": [
"\"Any position is fine... just keep fucking me.\"",
"\"Yeah, we can try this way.\"",
"\"Oh, are you tired? Sure, we can change for a bit.\"",
"\"Move me however you want, just do not stop.\"",
"\"Okay... this works too.\""
],
"sex_to_69_failure": [
"\"Stay inside my pussy.\"",
"\"No. Stop there.\"",
"\"No, keep fucking me.\"",
"\"Do not change position.\"",
"\"I want normal sex right now.\"",
"\"Do not turn me around.\"",
"\"Keep this rhythm.\""
],
"sex_to_69_success": [
"\"Yeah, we can do that for a bit.\"",
"\"Use your mouth again.\"",
"\"Come here. I want to taste you too.\"",
"\"Okay... switch with me.\"",
"\"I can keep going like this.\""
],
"sex_to_anal_failure": [
"\"No, stay in my pussy.\"",
"\"Not my ass right now.\"",
"\"Keep fucking my pussy instead.\"",
"\"Do not push into my ass.\"",
"\"Do not switch there.\"",
"\"I am not ready for anal.\"",
"\"Not there. Not now.\"",
"\"Stop, that is too much.\""
],
"sex_to_anal_success": [
"\"Slow. That is not the same hole.\"",
"\"Careful with my ass.\"",
"\"Give me a second first.\"",
"\"Do not push too fast.\"",
"\"Okay... but slowly.\""
],
"sexual_failure": [
"\"Not like that.\"",
"\"Wait, slow down.\"",
"\"That does not feel right.\"",
"\"Stop for a second.\"",
"\"No, change the pace.\"",
"\"Stop. Not like that.\"",
"\"Too much.\"",
"\"Wrong angle.\""
],
"sexual_success": [
"\"Fuck me like that.\"",
"\"Stay inside me.\"",
"\"Mmh... keep going.\"",
"\"Yes, that feels good.\"",
"\"Do not stop now.\"",
"\"Fuck, I like that.\"",
"\"Stay with that rhythm.\"",
"\"More... just like that.\"",
"\"Yes... keep going.\"",
"\"Fuck... right there.\"",
"\"I want more.\"",
"\"You are getting me wet.\""
],
"sit_on_face_failure": [
"\"No. Not that.\"",
"\"No. I'm not sitting on your face.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not now. I don't want your mouth under me.\""
],
"sit_on_face_success": [
"\"Use your tongue like that again.\"",
"\"My clit. Stay on it.\"",
"\"Do not stop with your mouth.\"",
"\"Use your tongue properly.\"",
"\"Alright. Mouth open.\"",
"\"Do not make me regret sitting down.\"",
"\"Right there. Keep licking.\"",
"\"Yes. Keep your face there.\""
],
"sixty_nine_failure": [
"\"No. Not that.\"",
"\"No. I'm not doing sixty-nine right now.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not that position. I'm not putting my mouth there.\""
],
"sixty_nine_success": [
"\"I can handle you while you lick me.\"",
"\"I will use my mouth if you use yours.\"",
"\"Keep your mouth on me.\"",
"\"Let me feel you in my mouth too.\"",
"\"Both mouths at once?\"",
"\"Do not stop eating me.\"",
"\"Yes. Both at once.\"",
"\"Fine. Keep up.\""
],
"sixty_nine_to_sex_failure": [
"\"No, keep your mouth there.\"",
"\"I want to stay like this.\"",
"\"Do not switch to sex yet.\"",
"\"Keep licking while I suck you.\"",
"\"Not inside me right now.\"",
"\"No, keep your mouth there. I don't want to fuck yet.\""
],
"sixty_nine_to_sex_success": [
"\"Okay... fuck me while I am still wet.\"",
"\"We can change it into sex.\"",
"\"Put it in slowly.\"",
"\"Do not waste what we just did.\"",
"\"I want you inside me now.\""
],
"slide_hand_inside_panties_public_failure": [
"\"No. Not here. People can see us.\"",
"\"Do not change it like that.\"",
"\"No. Not here.\"",
"\"Keep your hand out of my panties in public.\"",
"\"Not in the open. Are you insane?\""
],
"slide_hand_inside_panties_public_success": [
"\"Your hand is inside...\"",
"\"Careful, people are close.\"",
"\"Slow. We are not alone.\"",
"\"Fuck, be careful.\""
],
"slide_inside_panties_public_failure": [
"\"No. Not inside my panties in public.\"",
"\"Too much. Keep your hand out.\"",
"\"No. Stop there.\"",
"\"Not here.\"",
"\"You are pushing it too far.\""
],
"slide_inside_panties_public_success": [
"\"Do not make me regret letting your hand there.\"",
"\"Slow. If anyone notices, you stop.\"",
"\"Yes. Keep rubbing me there.\"",
"\"Careful. Not obvious.\"",
"\"Keep it hidden.\""
],
"social_failure": [
"\"I do not have much to say about that.\"",
"\"That is not where my head is.\"",
"\"Wrong subject.\"",
"\"This feels forced.\"",
"\"Let it go for now.\""
],
"social_success": [
"\"That is something I can actually answer.\"",
"\"That is closer to what I care about.\"",
"\"Keep it like this and do not make it weird.\"",
"\"Better. You listened.\"",
"\"I can talk about that.\""
],
"start_anal_success": [
"\"Use my ass carefully.\"",
"\"Yes... put it in my ass.\"",
"\"Okay... go slow.\"",
"\"Mmh... I can take it.\"",
"\"Go slow, but do it.\""
],
"start_analingus_success": [
"\"Mmh... okay, use your tongue.\"",
"\"Oh fuck... there?\"",
"\"Do it slowly.\"",
"\"That is filthy... keep going.\"",
"\"Careful... but yes.\""
],
"start_blowjob_success": [
"\"Yes, I want your cock in my mouth.\"",
"\"Put it in my mouth.\"",
"\"Okay... give it to me.\"",
"\"I will suck it.\"",
"\"Mmh... let me taste you.\""
],
"start_breast_sex_success": [
"\"Use my tits.\"",
"\"Yes, fuck my breasts.\"",
"\"Mmh... put it between them.\"",
"\"I will hold them tight for you.\"",
"\"Go on... use my chest.\""
],
"start_cunnilingus_success": [
"\"Put your mouth on me.\"",
"\"Go on, use your tongue.\"",
"\"Yes... lick me.\"",
"\"Mmh... eat me out.\"",
"\"Yes, right there.\""
],
"start_fingering_success": [
"\"Go on... I want your fingers inside me.\"",
"\"Okay... use your fingers.\"",
"\"Yes, touch my pussy.\"",
"\"Mmh... keep your hand there.\"",
"\"Do it slowly at first.\""
],
"start_handjob_success": [
"\"Okay... I will use my hand.\"",
"\"Let me stroke it.\"",
"\"Mmh... you are hard.\"",
"\"I will make it feel good.\"",
"\"Tell me if you want it faster.\""
],
"start_rubbing_success": [
"\"Oh... your hands feel nice.\"",
"\"Mmh... keep your hand there.\"",
"\"Yes. Keep rubbing me there.\"",
"\"Yes... rub me there.\"",
"\"Do not rush inside yet.\""
],
"start_sex_success": [
"\"I want you in my pussy.\"",
"\"Yes... put it inside me.\"",
"\"Go on... fuck me.\"",
"\"Mmh... I want this.\"",
"\"Yes, I am ready.\""
],
"start_sixty_nine_success": [
"\"I will use my mouth if you use yours.\"",
"\"Yes, I want your mouth too.\"",
"\"Yes... make me feel it while I suck you.\"",
"\"Okay... let us do it.\"",
"\"Get under me.\""
],
"strip_failure": [
"\"Hands off the fabric.\"",
"\"No. Not my clothes.\"",
"\"My clothes stay where they are.\"",
"\"Not yet.\"",
"\"Do not rush that door.\"",
"\"No. You have not earned that.\""
],
"strip_success": [
"\"Keep your eyes on me.\"",
"\"Now we stop pretending this is harmless.\"",
"\"Okay. Slowly.\"",
"\"Watch properly.\"",
"\"You wanted to see. So look.\""
],
"strip_together_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"strip_together_success": [
"\"Both of us, then?\"",
"\"Fine. No hiding.\"",
"\"You first too.\"",
"\"Slowly. Let me see.\"",
"\"Alright. Together.\""
],
"suck_clit_failure": [
"\"No. Not that.\"",
"\"No. Keep your mouth off my clit.\"",
"\"That is too far.\"",
"\"No. Do not push this.\"",
"\"Not there. That is too much right now.\""
],
"suck_clit_success": [
"\"Oh fuck, my clit.\"",
"\"Keep your mouth there.\"",
"\"Careful... that is sensitive.\"",
"\"Suck it slowly.\"",
"\"Do not stop now.\""
],
"suck_nipples_failure": [
"\"Move your hand back.\"",
"\"No. Not there.\"",
"\"Do not touch me like that yet.\"",
"\"That is too far.\"",
"\"No. You are rushing it.\""
],
"suck_nipples_success": [
"\"Use your tongue slowly.\"",
"\"Keep your mouth there.\"",
"\"Mmh... my nipples.\"",
"\"That is sensitive.\"",
"\"Do not bite unless I ask.\""
],
"talk_art_failure": [
"\"I do not see it that way. Which part gave you that idea?\"",
"\"You have described the mood, but not what created it.\"",
"\"I am not convinced. Show me the detail you mean.\"",
"\"That sounds like the label beside the work. What did you notice yourself?\""
],
"talk_art_success": [
"\"I had not noticed that detail. I want to look at it again.\"",
"\"I can see what you mean in the repeated shapes.\"",
"\"Yes, that is more specific than simply calling it pretty.\"",
"\"I understand your interpretation now.\""
],
"talk_computers_failure": [
"\"I still do not know what I am supposed to change.\"",
"\"Can you explain that without the technical terms?\"",
"\"I am not following the fix. Go back one step.\"",
"\"That sounds more complicated than the original problem.\""
],
"talk_computers_success": [
"\"Testing one part at a time makes sense.\"",
"\"Yes, that is the part we need to check first.\"",
"\"I understand the problem better now.\"",
"\"I can follow those steps. Show me where the setting is.\""
],
"talk_cooking_failure": [
"\"I do not think those ingredients would cook at the same speed.\"",
"\"You skipped a step. When does the sauce go in?\"",
"\"That sounds more complicated than I would want for dinner.\"",
"\"I am not convinced those flavours would work together.\""
],
"talk_cooking_success": [
"\"That sounds good. I would try it with the vegetables you mentioned.\"",
"\"Yes, the timing matters more than I expected.\"",
"\"That is simple enough to make after work.\"",
"\"I can follow that method. How long does it stay in the pan?\""
],
"talk_finance_failure": [
"\"You have given me numbers, but I still do not know what the plan is.\"",
"\"Naming the risk does not tell me how you would handle it.\"",
"\"That is too vague for me to trust. What is the monthly cost?\"",
"\"I am not convinced the calculation includes every expense.\""
],
"talk_finance_success": [
"\"That is a workable plan. You included the months when income is lower.\"",
"\"Yes, you are considering the risk as well as the possible profit.\"",
"\"Those figures make sense to me.\"",
"\"That calculation would change the decision, so it is worth doing.\""
],
"talk_massage_failure": [
"\"That is too vague. Where would you put your hands?\"",
"\"I would not want somebody guessing where to press.\"",
"\"That sounds like an excuse to touch someone, not a technique.\"",
"\"You would need to start more slowly and check the pressure.\""
],
"talk_massage_success": [
"\"Starting around the sore spot sounds sensible.\"",
"\"Yes, checking the pressure is important.\"",
"\"That would probably help if you started gently.\"",
"\"I understand where you would begin now.\""
],
"talk_music_failure": [
"\"You are describing the loudest part, but the change starts earlier.\"",
"\"I do not think that is the section that makes the song work.\"",
"\"That is too general. Which instrument do you mean?\"",
"\"I heard it differently. Play the section again.\""
],
"talk_music_success": [
"\"I can hear the change now that you have pointed it out.\"",
"\"Yes, the quieter instrument is doing more than I noticed at first.\"",
"\"That detail changes the last chorus.\"",
"\"I can hear what you mean. It comes in just before the vocal.\""
],
"talk_photography_failure": [
"\"You have only described the subject. What do you think of the photograph itself?\"",
"\"I think you missed the detail near the edge of the frame.\"",
"\"That does not explain why you prefer this shot to the other one.\"",
"\"I am not sure that angle shows the part you are talking about.\""
],
"talk_photography_success": [
"\"That explains why the wider photograph works better.\"",
"\"Yes, the side light is what makes the detail visible.\"",
"\"That small detail is worth keeping in the frame.\"",
"\"I would keep that framing too. It shows what the subject is looking at.\""
],
"talk_sports_failure": [
"\"That is a lot of effort without a clear training plan.\"",
"\"I think you missed the part that makes the movement safe.\"",
"\"Doing more every day is not always how people improve.\"",
"\"I am not convinced that routine gives the body enough time to recover.\""
],
"talk_sports_success": [
"\"That amount of practice sounds realistic.\"",
"\"Yes, repeating the movement properly matters more than adding weight too quickly.\"",
"\"That is a practical way to plan the training.\"",
"\"I understand which muscles the movement uses now.\""
],
"tease_words_failure": [
"\"No. Too soon.\"",
"\"That was clumsy.\"",
"\"Do not make it dirty yet.\"",
"\"You are pushing it.\"",
"\"Not that.\""
],
"tease_words_success": [
"\"Careful. Words can still get you in trouble.\"",
"\"Say that again only if you mean it.\"",
"\"That is a dirty thought.\"",
"\"Careful... I heard that.\"",
"\"I heard exactly what you meant.\""
],
"titfuck_let_work_failure": [
"\"I am not working your cock like that right now.\"",
"\"No. You do not get to just lie there and make me do it.\"",
"\"If you want more, do not dump all of it on me.\"",
"\"No. That feels too one-sided.\"",
"\"Move back. I am not taking over.\""
],
"titfuck_let_work_success": [
"\"Keep your hands off and let my tits do it.\"",
"\"Do not thrust. Let me move.\"",
"\"You like watching me work for it?\"",
"\"There. I can make you feel it too.\"",
"\"Fine, I will do it. Stay still.\""
],
"titfuck_lick_tip_failure": [
"\"No. My mouth is not joining this.\"",
"\"You already have my tits. Do not get greedy.\"",
"\"Do not push the tip at my lips.\"",
"\"No tongue. Not with that angle.\"",
"\"Keep that away from my mouth.\""
],
"titfuck_lick_tip_success": [
"\"There. Tits and tongue. Happy?\"",
"\"Just the tip. Do not push into my mouth.\"",
"\"You wanted my tongue too? Then stay still.\"",
"\"I can taste you every time you slide up.\"",
"\"Do not waste that. I am doing more than enough.\""
],
"titfuck_pleasure_failure": [
"\"No, stop using my tits like that.\"",
"\"Too much. Pull back.\"",
"\"I need a break from that.\"",
"\"Not another stroke. Stop.\"",
"\"That is enough with my chest.\""
],
"titfuck_pleasure_success": [
"\"Put your cock between my tits.\"",
"\"You are sliding all over my tits.\"",
"\"I can feel you twitching between them.\"",
"\"Use them, but do not lose control.\"",
"\"Keep it there. Not too rough.\"",
"\"Mmh... keep going.\""
],
"touch_arm_failure": [
"\"No. Do not touch me yet.\"",
"\"Too soon.\"",
"\"Hands off.\"",
"\"Not now.\"",
"\"Do not start that.\""
],
"touch_arm_success": [
"\"Your hand is warm.\"",
"\"That is alright.\"",
"\"Careful, but fine.\"",
"\"I don't mind.\"",
"\"That much is okay.\""
],
"touch_failure": [
"\"I did not give you that much room.\"",
"\"No. Do not touch me like that.\"",
"\"Not now.\"",
"\"Not like that.\"",
"\"Too soon for that.\"",
"\"Try listening before touching.\""
],
"touch_hand_failure": [
"\"No. Not my hand.\"",
"\"Do not touch me yet.\"",
"\"Not there.\"",
"\"Too soon.\"",
"\"Hands off.\""
],
"touch_hand_success": [
"\"That is fine. Just my hand.\"",
"\"You can hold it for now.\"",
"\"Slow is better.\"",
"\"Do not squeeze too hard.\"",
"\"Alright. That much is okay.\""
],
"touch_success": [
"\"You can keep your hand there.\"",
"\"Yes. Like that.\"",
"\"There. That is fine.\"",
"\"Careful, but yes.\"",
"\"Do not rush past that.\""
],
"transition_failure": [
"\"No. Stop there.\"",
"\"Wait.\"",
"\"Not yet, I need a second.\"",
"\"The timing is off.\"",
"\"Slow down first.\""
],
"transition_success": [
"\"Alright. Keep going.\"",
"\"Do not lose it now.\"",
"\"Yes... just like that.\"",
"\"Good, keep moving like that.\"",
"\"Okay, we can try this.\"",
"\"Do not stop completely.\""
],
"try_bottom_off_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"try_bottom_off_success": [
"\"Careful with my bottoms.\"",
"\"Do not pull too fast.\"",
"\"Slowly.\"",
"\"You are getting bold.\"",
"\"Fine. Help, do not grab.\""
],
"try_slip_inside_failure": [
"\"Move your hand back.\"",
"\"No. Not there.\"",
"\"Do not touch me like that yet.\"",
"\"That is too far.\"",
"\"No. You are rushing it.\""
],
"try_slip_inside_success": [
"\"You are trying to put it in.\"",
"\"Slow... do not force it.\"",
"\"Fuck, that is close.\"",
"\"Careful with me.\"",
"\"If it happens, go slowly.\""
],
"try_top_off_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"try_top_off_success": [
"\"Careful with my top.\"",
"\"Do not yank it.\"",
"\"Slowly.\"",
"\"You are eager.\"",
"\"Fine. Help, do not grab.\""
],
"unhook_bra_failure": [
"\"No. That stays on.\"",
"\"Not that layer.\"",
"\"Do not undress me like that.\"",
"\"Stop. Too soon.\"",
"\"No. Leave it.\""
],
"unhook_bra_success": [
"\"Fine. Hands steady.\"",
"\"Careful with the clasp.\"",
"\"Do not fumble too much.\"",
"\"Slowly. That is delicate.\"",
"\"You want my bra open.\""
],
"wall_pleasure_failure": [
"\"No. Stop there.\"",
"\"Slow down.\"",
"\"Not like that.\"",
"\"Change the angle.\"",
"\"Wait, that does not feel right.\"",
"\"Ease up a little.\"",
"\"Give me a second.\"",
"\"Wrong angle.\""
],
"wall_pleasure_success": [
"\"Your cock feels so deep standing up.\"",
"\"Do not stop, I am still with you.\"",
"\"Right there, keep me against the wall.\"",
"\"Fuck me against the wall.\"",
"\"Hold me up and keep going.\"",
"\"Do not let me slip.\"",
"\"Harder... I can take it.\"",
"\"I like how rough this feels.\"",
"\"Keep me pinned like this.\""
],
"whisper_dirty_failure": [
"\"No. Do not whisper that to me.\"",
"\"Too soon.\"",
"\"Not in my ear.\"",
"\"Do not make it dirty yet.\"",
"\"Back up.\""
],
"whisper_dirty_success": [
"\"Do not whisper that unless you can handle the answer.\"",
"\"You are too close to say things like that.\"",
"\"That is filthy.\"",
"\"I heard every word.\"",
"\"Careful. That got under my skin.\""
],
"rub_ass_clothes_success": [
"\"You like my ass that much?\"",
"\"Careful where your hand is.\"",
"\"You are getting bold.\"",
"\"Slow. Not too obvious.\"",
"\"I felt that.\""
],
"rub_ass_clothes_failure": [
"\"Not my ass.\"",
"\"Move your hand.\"",
"\"No. Not there.\"",
"\"Do not grab me like that.\"",
"\"Stop.\""
],
"bring_hand_inside_pants_success": [
"\"Are you serious? Here?\"",
"\"Keep still.\"",
"\"Do not make it look obvious.\"",
"\"If someone sees, I am stopping.\"",
"\"Fine. Be quiet.\"",
"\"You are insane.\"",
"\"Only for a second.\"",
"\"Do not move too much.\""
],
"bring_hand_inside_pants_failure": [
"\"No, what the fuck are you doing?\"",
"\"Not here.\"",
"\"Are you crazy?\"",
"\"Get my hand away from there.\"",
"\"No. Absolutely not.\"",
"\"Someone could see.\"",
"\"Do not try that in public.\"",
"\"Stop. Now.\""
],
"cont_public_handjob_keep_success": [
"\"Stay quiet.\"",
"\"Do not make me stop.\"",
"\"Keep your face normal.\"",
"\"I said stay still.\"",
"\"I can feel you getting harder.\"",
"\"Is it odd that I am enjoying this?\"",
"\"Fuck, this is risky.\""
],
"cont_public_handjob_keep_failure": [
"\"I think that couple noticed. Stop.\"",
"\"No, someone is looking.\"",
"\"Too risky.\"",
"\"I am stopping.\"",
"\"Not with them right there.\"",
"\"We are done.\"",
"\"I said stop moving.\""
],
"come_public_hand_success": [
"\"Keep still.\"",
"\"Fuck, you came in my hand.\"",
"\"Do not make a face.\"",
"\"I need something to wipe this.\"",
"\"That is in my hand now.\""
],
"come_public_hand_failure": [
"\"Not here.\"",
"\"No, not in my hand.\"",
"\"Stop. Someone is too close.\"",
"\"I am not catching that here.\""
],
"talk_anal_private_success": [
"\"You really want to talk about my ass?\"",
"\"I am listening.\"",
"\"Maybe. Say it properly.\"",
"\"That depends how you ask.\"",
"\"I have thought about it.\"",
"\"Careful. That is not a small question.\""
],
"talk_anal_private_failure": [
"\"No. Not talking about that.\"",
"\"Leave my ass out of this.\"",
"\"That is not happening.\"",
"\"Do not push that.\"",
"\"Wrong subject.\"",
"\"I said no.\""
],
"talk_anal_public_success": [
"\"Lower your voice.\"",
"\"Do not say that so loudly.\"",
"\"Here? Really?\"",
"\"I heard you. Be careful.\"",
"\"Not where people can hear.\"",
"\"We can talk, quietly.\""
],
"talk_anal_public_failure": [
"\"Not here.\"",
"\"Are you insane? Someone could hear.\"",
"\"Do not talk about my ass in public.\"",
"\"Shut up. Not now.\"",
"\"Wrong place.\"",
"\"Later. Maybe.\""
],
"fingering_to_cunnilingus_success": [
"\"Your mouth now.\"",
"\"Yes... lick me there.\"",
"\"Do not stop touching me completely.\"",
"\"Use your tongue.\"",
"\"I am already wet. Keep going.\""
]
}
END_DIALOGUE_BANK %//% FIRST_TIME_DATA
{
"girlId": "g0",
"girl": "Maya Bell",
"notes": [],
"moments": {
"first_meeting": {
"text": [
"Maya is behind the cafe counter, wiping the steam wand with a folded cloth while the machine settles into a low hiss.",
"She notices you at the register, finishes the motion, then sets the cloth aside.",
"\"What can I get you?\"",
"You order something simple and give your name when she asks for it.",
"She writes it on the cup, glances at you once, then sets the cup beside the machine.",
"\"First time here?\"",
"You tell her yes.",
"She starts the drink without rushing. The grinder kicks on, loud for a few seconds, and she waits for it to stop before speaking again.",
"\"Sugar is at the end of the counter. Lids too.\"",
"It is plain, almost automatic, but she looks at you when she says it instead of past you.",
"When the drink is ready, she slides it over with the name facing you.",
"\"Maya.\"",
"She says it before you ask, then reaches for the next cup."
]
},
"first_phone_success": {
"text": [
"Maya writes her number on a narrow strip of paper, holding it flat with two fingers while the pen moves in small, careful strokes.",
"She checks the digits once before tearing the strip free.",
"For a second, she keeps it in her hand.",
"\"Text first. I do not always pick up calls.\"",
"You say that is fine.",
"She gives you the paper. Her fingers brush your palm, quick and light, then move away.",
"\"And write your name, so I know it is you.\"",
"She puts the pen down, but her eyes stay on you a moment longer."
]
},
"first_address_success": {
"text": [
"Maya writes the address more slowly than she wrote her number.",
"She checks the street name, then the building number, then keeps the paper under her fingers instead of handing it over right away.",
"\"This is where I live. Do not show up unless I invite you.\"",
"You tell her you understand.",
"She watches your face for a second, not looking for a clever answer, just making sure the answer was simple enough to trust.",
"Then she folds the paper once and gives it to you.",
"\"Okay. Keep it private.\"",
"Her voice stays even, but she does not pull her hand back as quickly this time."
]
},
"first_hug": {
"text": [
"You step close and try to wrap your arms around Maya.",
"For a second she goes still, surprised by the contact, but she does not move away or stop you.",
"Her cheek ends up close to your shoulder. Her hands stay low at first, unsure where to place themselves.",
"You keep the hug gentle.",
"After a few seconds, her hands touch your sides, then settle there.",
"You feel her breathe out against you.",
"When you let go, she smooths the front of her shirt and looks down for a moment.",
"\"This was nice... but, what did it mean?\"",
"It comes out a bit worried, but not cold.",
"You tell her not to think about it too much. It was just a hug.",
"She gives an uncertain smile, but it is clear that she did not hate it. Her guard is lowering."
]
},
"first_kiss_cheek": {
"text": [
"You lean in while Maya is still close and kiss her cheek.",
"She stops in the middle of whatever she was about to say.",
"For a second her face stays turned toward you, close enough that you can see the surprise before she hides most of it.",
"One hand rises toward the spot you kissed, then drops again before it gets there.",
"\"You did that fast.\"",
"You ask if you should not have.",
"Maya looks away, but the corner of her mouth moves before she can stop it.",
"\"No. I just was not ready for it.\"",
"She touches her cheek after all, quick and almost absent, then looks back at you like she wants to know if you noticed."
]
},
"first_dirty_whisper": {
"text": [
"You lean close enough that your voice does not need to carry.",
"Maya notices the change immediately. Her eyes flick to your mouth, then back up.",
"You tell her what you want: your hands on her hips, your mouth on her neck, and your fingers moving between her thighs until she has to stop pretending her breathing is steady.",
"She goes very still for half a second.",
"\"You cannot just say that.\"",
"You ask if she wants you to stop.",
"Maya looks away. Her cheeks are red, but she stays where she is.",
"\"No. Just... not so loud.\"",
"The answer comes out smaller than her usual voice. She still has not stepped back."
]
},
"first_massage_start": {
"text": [
"You start the massage at Maya's shoulders, where the tension is easiest to find.",
"At first she watches you like she expects your hands to get impatient.",
"They do not. You work your thumbs into the tight muscle near her neck, then down along the sore place beside her spine.",
"Maya's shoulders drop a little.",
"\"There. A little lower.\"",
"You follow the direction and keep the pressure slow.",
"Her breathing gets quieter after the first minute. She stops checking your hands and lets her head lower.",
"\"Okay. You are actually good at this.\"",
"She says it like she did not plan to give you anything that direct, but she does not take it back."
]
},
"first_massage_orgasm": {
"text": [
"Your hands stay on Maya's shoulders until the tension starts to loosen under your thumbs.",
"You work down her back, slow enough that she has time to relax into each touch before the next one moves lower.",
"By the time your hands reach her hips, Maya has gone quiet. Her fingers curl against the surface beneath her when your thumb presses into the base of her back.",
"You move along her hips first, then down to the outside of her thighs.",
"When your fingers brush the inside of one thigh, she catches your wrist.",
"She holds it there for a second. Her grip is tight, but she does not push you away.",
"\"Slow.\"",
"You keep your hand there until she lets go.",
"Then you touch her through her panties, rubbing over the fabric until the heat of her pussy is clear under your fingers.",
"Maya's thighs part a little. Her breath catches, and this time she does not cover it with a joke.",
"You rub her clit through the fabric in small circles. She tries to stay still, but her hips answer before her mouth does.",
"\"Fuck... there.\"",
"You slip beneath the edge of her panties and touch her bare pussy. She is wet enough that your fingers slide easily over her clit.",
"Maya grabs your wrist again, not to stop you this time, but to keep your hand exactly where it is.",
"You keep rubbing her clit until her legs start to tremble, then slide two fingers inside her wet cunt.",
"Her body tightens around your fingers. The sound she makes is rough, short, and too honest for her to dress up afterward.",
"You curl your fingers and keep your thumb on her clit, steady through every twitch of her hips.",
"Maya comes hard around your hand, pussy pulsing against your fingers while her thighs close around your wrist.",
"When it finally eases, she stays still for a few seconds, flushed and breathing hard.",
"\"Give me a second.\""
]
},
"first_meal": {
"cookingVariants": {
"threshold": 45,
"low": [
"You cook for Maya, and she notices the mistakes before she says anything about them.",
"She takes the first bite, chews slowly, then looks at the pan instead of at you.",
"\"The heat was too high at the start.\"",
"You look at the plate, then back at her.",
"Maya takes another bite anyway. That makes the criticism feel less like a dismissal and more like the way she talks when she actually cares about the answer.",
"\"It is not bad. It is just not finished. Salt earlier next time, and do not rush the pan.\"",
"She reaches over, adds a small adjustment from what is on the table, and pushes the fork back toward you.",
"\"Try it now. Better, right?\"",
"She is already watching your face before you answer."
],
"high": [
"You cook for Maya, and the first bite makes her quiet in a way you have not seen before.",
"She looks at the plate, then at the pan, then back at the plate like she is checking whether the result makes sense.",
"\"You paid attention.\"",
"You ask if that is a compliment.",
"She takes another bite before answering.",
"\"Yes. Do not interrupt it.\"",
"The meal turns into her asking what you used, when you added it, and why you did not drown the whole thing in heat like most people would have.",
"By the end, she is talking with her fork still in her hand, more animated than she means to be.",
"\"Cook for me again sometime. I want to see if this was luck.\""
]
}
},
"first_kiss": {
"text": [
"The first real kiss with Maya happens after she has already stayed close longer than she needed to.",
"You see her notice it too. Her eyes drop to your mouth, then lift again like she is annoyed at herself for being that obvious.",
"You kiss her before she can cover it with a joke.",
"For one breath, she goes still against you.",
"Then her hand catches the front of your shirt and she kisses back, not hard at first, but with enough pressure to make it clear she is not just letting it happen.",
"You slow down. Maya follows the pace after a second, lips parting under yours, her fingers still twisted in your shirt.",
"When you pull back, she stays close.",
"\"Again.\"",
"Her voice is quieter than usual.",
"\"Slower this time.\""
]
},
"first_handjob": {
"text": [
"The first time Maya reaches for your cock, her fingers hover for a second before they close around you.",
"Her grip is light at first. She feels the shape of your shaft, then tightens her hand when your cock twitches in her palm.",
"You get harder in her hand, and she notices immediately.",
"\"That fast?\"",
"Her voice is quiet, more surprised than teasing.",
"She strokes you once, then again, watching the way your breath changes when her thumb moves over the head.",
"The next stroke is firmer. Maya's eyes stay on her hand, focused on the movement, then lift to your face.",
"\"Tell me if I am too rough.\"",
"You tell her she is not.",
"She nods once and keeps going, slower than she needs to, learning your cock by the way it twitches and throbs in her palm."
]
},
"first_blowjob": {
"text": [
"Maya lowers herself to her knees slowly, one hand resting on your thigh while the other reaches for your cock.",
"Her fingers close around your shaft before her mouth gets involved. She strokes you twice, eyes fixed on the swollen head, then looks up at you.",
"\"Stay still.\"",
"Her lips touch the tip first. Warm, careful, almost too light.",
"Then her mouth closes around the head of your cock, and the first wet pull makes your hips tense before you can stop them.",
"Maya notices, but she does not pull away. Her hand tightens around the base, keeping you in place while she takes a little more of you.",
"She has to stop once to breathe, lips wet, cheeks flushed, her fingers still wrapped around your shaft.",
"The second time she lowers her mouth, she goes deeper.",
"Your cock slides over her tongue, and a small sound catches low in her throat.",
"When she pulls back again, a thin line of spit follows her lip for a second before it breaks.",
"\"Like that?\"",
"You answer with a rough sound, and Maya's grip tightens before she takes you back into her mouth."
]
},
"first_cunnilingus": {
"text": [
"Maya is already wet when you get between her thighs.",
"She notices you looking and presses her lips together, embarrassed by how obvious her body has made it.",
"You kiss the inside of her thigh first. Her leg shifts under your mouth, but she stays open for you.",
"When your tongue runs up her slit, her breath catches hard.",
"\"Fuck.\"",
"You lick her again, slower, parting her folds with your tongue until you find her clit.",
"Maya's hand moves into your hair. At first she only touches you there. Then her fingers tighten when your tongue starts circling her clit.",
"Her hips lift, just a little, then again when you keep the pressure steady.",
"She tries to stay quiet, but the next sound slips out of her before she can hide it.",
"\"There. Do not move.\"",
"You keep your mouth on her, licking her clit until her thighs begin to tremble around your head."
]
},
"first_facesitting": {
"text": [
"Maya hesitates the first time she climbs over your face.",
"She looks down at you, thighs on either side of your head, one hand braced nearby while she lowers herself slowly.",
"Her pussy is close enough that you can feel the heat of her before your mouth touches her.",
"The first lick makes her hand tighten.",
"\"Oh.\"",
"It comes out soft, before she can hold it back.",
"You lick her again, tongue pressing up through her wet slit until it reaches her clit.",
"Maya's hips dip without warning. She catches herself, then stays there, breathing shallowly above you.",
"Your hands settle on her thighs to keep her close.",
"This time, when her hips move, she lets the movement happen.",
"\"Again. Do that again.\""
]
},
"first_beg_facesit_success": {
"text": [
"When you ask Maya to sit on your face, she looks away with her cheeks already turning red.",
"You ask again, lower this time, making it clear how badly you want her there.",
"Her fingers flex once at her side.",
"\"You really want that.\"",
"You tell her yes.",
"Maya looks down at your mouth, then at your hands. Her breathing is not as steady as she wants it to be.",
"She steps over you carefully and lowers herself until her wet pussy rests against your tongue.",
"The first lick makes her hips jerk down harder than she expected.",
"Her hand finds something to hold. Her thighs close a little around your head.",
"\"Fuck... okay.\"",
"She stays there, flushed and unsteady, letting your mouth work her open while her breathing gets worse."
]
},
"first_69": {
"text": [
"The first sixty-nine with Maya starts with both of you shifting until your bodies finally line up the right way.",
"Her mouth is close to your cock. Your mouth is close to her pussy. For a few seconds, neither of you moves first.",
"Then Maya's hand wraps around your shaft, and you put your mouth on her at the same time.",
"Her breath breaks against your cock before her lips close around it.",
"You lick up through her wet slit and find her clit while she takes the head of your cock into her mouth.",
"The rhythm is uneven at first. She pauses when you make her moan. You lose your pace when her tongue moves under the head.",
"Then it starts to settle into something messier and better.",
"Maya's thighs tighten near your face. Her mouth gets wetter around your cock, less careful each time your tongue circles her clit.",
"She pulls off once, breathing hard against your shaft.",
"\"Fuck. Keep going.\"",
"Then she takes you back into her mouth and stops trying to make it neat."
]
},
"first_rub_pussy_fabric_public": {
"text": [
"The first time your fingers move between Maya's legs in public, you keep the touch small enough to hide from everyone else.",
"She feels it anyway. Her eyes snap to yours, sharp with surprise.",
"You rub her through the fabric, slow and controlled, just enough pressure to find the shape of her pussy under your fingers.",
"Maya shifts her stance like she is only adjusting herself, but her breath gives her away.",
"\"Careful.\"",
"The warning is quiet, but she stays where she is.",
"You keep going, your fingers moving over the damp heat of her slit through her clothes.",
"She looks away first, checking the space around you, then looks back at you with her face warmer than before.",
"Her thighs press together for a second, trapping your hand there.",
"\"Slow. If someone sees, I am walking away.\"",
"She does not walk away."
]
},
"first_fingering": {
"text": [
"The first time your fingers slide inside Maya, the teasing has already made her too wet to hide it.",
"You touch her clit first, slow circles that make her breath catch and her thighs open a little more.",
"Then one finger presses against her entrance.",
"Maya's hand catches your wrist, but she does not push you back.",
"\"Slow.\"",
"You push in carefully. Her pussy takes your finger with a wet, tight pull, and her grip on your wrist tightens as she adjusts to it.",
"You give her a few seconds, then start moving inside her while your thumb stays on her clit.",
"Her hips answer before she says anything. Small movements at first, then more honest when the pleasure starts to build.",
"You add a second finger, and Maya's cunt clenches around both of them.",
"\"Fuck... there.\"",
"Her hand moves from your wrist to your shoulder, holding on while you curl your fingers and keep rubbing her clit."
]
},
"first_analingus": {
"text": [
"Maya goes quiet when your mouth moves lower than she expected.",
"You kiss the inside of her thigh, then the curve beneath her ass, giving her time to understand where you are going.",
"She looks back at you once, face hot, breathing held in her chest.",
"\"You want to do that?\"",
"You answer by kissing closer, your hands holding her hips steady.",
"When your tongue touches her tight little asshole, her whole body goes still.",
"The second circle makes her fingers grip the surface under her.",
"\"Oh... fuck.\"",
"The sound is surprised and low in her throat.",
"You lick her slowly, circling her ass until her hips ease under your hands.",
"By the time your tongue presses a little firmer, Maya is breathing through her mouth, head lowered, fingers still gripping the surface beneath her."
]
},
"first_ask_sex_success": {
"text": [
"When you ask Maya if she wants to have sex, she does not answer fast.",
"She looks at you, then down between you, where your hard cock is pressing against your clothes.",
"For a few seconds she seems caught between nerves and wanting it badly enough to stop pretending she is only thinking about it.",
"Then she steps closer and puts her hand on your chest.",
"\"Yes.\"",
"The word is quiet, but not uncertain.",
"Her hand slides down your body until her fingers brush your hard cock through your clothes.",
"She feels you twitch under her touch and exhales slowly.",
"\"I want you too.\"",
"Her eyes lift back to yours.",
"\"Start slow. I mean it.\""
]
},
"first_beg_sex_success": {
"text": [
"Begging Maya for sex works because, this time, you sound too honest to mock properly.",
"She tries anyway. The smile starts, then fades when she hears the way you say her name.",
"\"You really want me that badly?\"",
"You say yes. No performance. No cleverness.",
"Maya steps close, hand dropping to your hard cock with a slow squeeze that makes both of you breathe differently.",
"\"Good. Come here.\"",
"Her mouth finds yours before she can turn the rest into a joke."
]
},
"first_demand_sex_success": {
"text": [
"The first time you demand sex from Maya and she says yes, she tries to answer with her glare before her breath gives her away.",
"The words hit something already burning between you. Her breath changes before her mouth does.",
"Her eyes drop to your cock, then back to your face.",
"\"Say it again.\"",
"You do, lower this time, telling her you want her wet and close and under your hands.",
"Maya's smile comes back smaller, hotter, less safe than usual.",
"\"Then fuck me like you mean it.\""
]
},
"first_vaginal_intro": {
"text": [
"The first time Maya feels your cock at her pussy, everything else drops away.",
"There is only her breath, your hands, and how wet she is when the swollen head presses against her slit.",
"\"Slow first.\"",
"You push in by inches. Her tight little pussy stretches around you, hot and slick, and Maya's eyes flutter before she forces them open again.",
"The first full slide steals the joke from her mouth completely.",
"\"Fuck.\"",
"Her nails dig into your shoulder, not to stop you, but because the next inch makes her clench around your cock."
]
},
"first_anal_intro": {
"text": [
"Maya's first anal starts with nerves and heat tangled together.",
"You get her slick first, fingers working her open until her breathing goes uneven and her ass stops fighting every touch.",
"When the head of your cock presses against her tight little asshole, her fingers dig into your arm.",
"\"Slow.\"",
"You push in carefully, feeling her stretch around you inch by inch.",
"Maya curses under her breath when the pressure turns real.",
"\"Fuck. Wait.\"",
"You stop, buried just enough to make her shake. A second later her hips move back by a fraction.",
"\"Okay. More. A little.\""
]
},
"first_position_missionary": {
"text": [
"Maya's first missionary fuck is face-to-face enough that she cannot hide behind jokes. Every inch of your cock entering her makes her expression change before she can cover it.",
"\"Do not look so pleased with yourself.\"",
"You thrust slowly and her legs tighten around you.",
"\"Okay. Maybe a little pleased. Just keep moving.\""
]
},
"first_position_cowgirl": {
"text": [
"The first time Maya rides you, she climbs over your cock with a look that dares you to call it need.",
"Then she sinks down on your cock and loses half the sentence she was using to prove the point.",
"Her hands brace on your chest. Her hips start practical and turn greedy before she can joke her way out of it.",
"\"Oh.\"",
"You stay still while she finds the pace herself, slow at first, then deeper when her pussy clenches around you.",
"Maya's head dips, hair falling forward as her breath turns rough.",
"\"There. Fuck. That.\""
]
},
"first_position_reverse_cowgirl": {
"text": [
"Maya turns around before lowering herself onto you, acting like she is testing an idea. The first slide of your cock into her pussy makes her back arch and kills the experiment immediately.",
"\"Do not stare too much. Actually... no. Stare. I want to know what this looks like from there.\"",
"She rides you with her round ass shifting over your hips, getting bolder each time your breath catches."
]
},
"first_position_doggy": {
"text": [
"Maya takes doggy with both hands braced and one last look over her shoulder.",
"Your cock pushes into her soaked pussy from behind, and her head dips when the angle hits deeper than she expected.",
"The first thrusts are careful. Then her hips press back once, almost despite her, asking for more before her mouth does.",
"\"Fuck.\"",
"You hold her hips and thrust again, slow enough to feel her cunt tighten around you, hard enough to make her breath break.",
"She looks back once more, flushed and rough-voiced.",
"\"Again. Like that.\""
]
},
"first_position_wall": {
"text": [
"The first wall fuck with Maya starts with laughter because neither of you quite believes you are trying it. Then your hands lift her, her legs hook around you, and the laugh turns into a gasp when your cock finds her pussy.",
"\"This is ridiculous,\" she says, and the laugh catches when your cock fills her against the wall.",
"You thrust once. Her nails dig into your shoulders.",
"\"Ridiculous can stay.\""
]
},
"first_anal_position_missionary": {
"text": [
"Maya chooses missionary for the first anal position because she wants your face where she can read it. She watches every breath as your cock presses into her ass, inch by inch.",
"\"If I say stop, you stop. If I say wait, you wait.\"",
"You do. That is why she lets you get deeper."
]
},
"first_anal_position_cowgirl": {
"text": [
"When Maya rides your cock with her ass for the first time, she starts slow, jaw tight, one hand on your chest.",
"She lowers herself by inches, her tight asshole stretching around the head while her breath shakes.",
"\"Fuck.\"",
"No joke follows. She just stops halfway down, eyes closed, trying to let her body catch up.",
"Then she sinks lower, and the sound she makes is too raw to cover.",
"Her ass tightens around your cock, then eases enough to take more.",
"\"Okay. I can... I can feel all of that.\""
]
},
"first_anal_position_reverse_cowgirl": {
"text": [
"Maya takes reverse cowgirl anal like she needs the courage of not looking at your face.",
"Her back is tense as she lowers herself onto your cock, ass stretching slowly around you while her hands grip your thighs.",
"Halfway down, she stops and breathes hard.",
"\"Shit.\"",
"You can see her asshole tight around your cock, see the tremor in her hips when her body gives another inch.",
"The view gets to both of you. Maya feels it in the way your hands tense against her.",
"\"I know. I can feel you looking.\""
]
},
"first_anal_position_doggy": {
"text": [
"Doggy makes Maya's first anal from behind feel more exposed than she expected.",
"She braces herself while you press the head of your cock to her asshole, already slick, already tense.",
"\"Slow.\"",
"You push in carefully, feeling her tight ass resist and then give by tiny degrees.",
"Maya's fingers squeeze the surface beneath her, and the first deep inch makes her breath break into a rough little moan.",
"Her hips pull away once, then push back on their own.",
"\"Okay. More. Not much. Just... more.\""
]
},
"first_anal_position_wall": {
"text": [
"The first wall anal with Maya is awkward for the first few seconds, all grip and balance and her muttering about terrible ideas.",
"Then your cock presses against her ass and the joking cuts off.",
"\"Slow.\"",
"You hold her steady and push in carefully, feeling her asshole stretch around the head while her nails dig into your shoulder.",
"The pressure makes her curse under her breath. The next inch makes her moan before she can swallow it.",
"She laughs once, breathless and embarrassed, forehead near yours.",
"\"Still a terrible idea. Keep going.\""
]
},
"first_sex": {
"text": [
"Maya's first time with you is not clean, perfect, or poetic.",
"It is warm skin, a sharp mouth going quiet, and her hand pulling you back when you hesitate too long.",
"Your cock slides into her pussy and the cleverness leaves her face in one broken breath.",
"\"Fuck.\"",
"You move slowly at first, feeling her wet cunt stretch and clench around you with every careful thrust.",
"Maya grips your shoulder, half annoyed at needing it and half ruined by how much it helps.",
"When her hips start meeting yours, the careful part starts to fall apart.",
"\"More. I said slow, not scared.\""
]
},
"first_anal": {
"text": [
"Maya's first anal is slow at first because it has to be.",
"The first inch into her tight ass takes her breath and yours, her fingers twisting in the fabric beneath her while her body fights the stretch.",
"\"Okay. Wait.\"",
"You stop, cock held inside her just deep enough to make her shake.",
"Maya breathes through it, flushed and tense, then pushes back by a fraction.",
"The next inch is slower. Dirtier. Her asshole opens around you, tight and hot, and her voice breaks when it starts feeling good through the pressure.",
"\"Fuck. More. Carefully.\""
]
},
"first_demand_anal_success": {
"text": [
"Demanding anal from Maya only works after she already trusts the hunger under your voice.",
"She looks at you, then down at your cock, and the flush on her face arrives before the answer does.",
"\"That is a lot to ask like that.\"",
"You say it again, lower, telling her you want her ass and you want to take your time with it.",
"Maya's breath catches. For once, she does not have a fast joke ready.",
"\"Fuck.\"",
"She steps closer.",
"\"I might want that too.\""
]
},
"first_undress_top_off": {
"text": [
"The first time Maya lets her top come off, she makes you wait while she finishes one last thought, because giving in too quickly would irritate her.",
"The fabric lifts, and her skin appears warm and close enough that the joke she was building never reaches her mouth.",
"\"Look if you want. Just do not look like you won something.\""
]
},
"first_undress_bra_off": {
"text": [
"Maya unhooks her bra with the brisk annoyance of someone removing an obstacle that has done its job for too long.",
"Her tits come free, and for once she does not rush to bury the softness of it under a joke.",
"\"You can look. I am not doing all this for the wall.\""
]
},
"first_undress_bottom_off": {
"text": [
"The first time Maya lets her bottoms slide down, she watches your face instead of the fabric. She wants to see the exact second the mood stops being theoretical.",
"\"There it is. That look.\"",
"She steps out of the clothes and comes closer, bare legs brushing yours.",
"\"Say something before I start pretending this was a terrible idea.\""
]
},
"first_undress_panties_off": {
"text": [
"The first time Maya lets her panties come off, she is quieter than she was with every other layer. No joke lands fast enough to cover what she is choosing.",
"\"Say something smart and I might forgive you for staring.\"",
"You tell her she looks beautiful like this, and for once Maya does not immediately weaponize the compliment.",
"She steps closer, bare and trying not to look as moved as she is.",
"\"Good. That was almost smart.\""
]
},
"first_massage_undress_top_off": {
"text": [
"During the massage, Maya hooks her fingers under the hem and pulls the top off before she can make another excuse for it.",
"Your hands return to her shoulders, skin to skin this time, and the first slow press makes her stop explaining herself.",
"\"Fine. That is better. Do not make me regret admitting it.\""
]
},
"first_massage_undress_bra_off": {
"text": [
"Maya pauses before the bra comes off during massage. The clasp is a small thing, but her breathing changes when it opens.",
"\"Hands stay where I put them.\"",
"You nod. She opens the clasp herself. Her tits slip free, and your hands return to her shoulders instead of rushing for them.",
"For once she does not cover the silence with a joke right away.",
"\"Good. I like it when you can wait.\""
]
},
"first_massage_undress_bottom_off": {
"text": [
"Maya lets her bottoms come off during massage after pretending the decision is purely practical for too long.",
"Your palms return to her hips and thighs. You keep your hands slow, and her breath keeps catching despite the glare she gives the floor.",
"\"You are enjoying how tense I am. I hate that it is working.\""
]
},
"first_massage_undress_panties_off": {
"text": [
"When Maya lets her panties come off during massage, she is still lying on her front with her cheek against her folded arms.",
"You slide the fabric down slowly. Her thighs tense, then part just enough to help you. Her pussy is wet before your hand gets anywhere near it.",
"\"Do not get smug.\"",
"You return to her hips and inner thighs first, using the same patient hands that got her this far.",
"Her voice drops into the cushion.",
"\"Fuck. Fine. That is exactly why I warned you.\""
]
},
"first_slide_inside_panties_public": {
"text": [
"The first time your hand slips inside Maya's panties in public, she catches your wrist before your fingers reach anything dangerous.",
"For a second you think she will stop you. Then her grip loosens by one tiny degree.",
"\"You picked the worst possible place.\"",
"Your fingers slide under the fabric and find her wet slit. Her breath catches so quietly it almost disappears under the noise around you.",
"\"Slow. If I have to act normal, you had better keep your hand steady.\""
]
},
"first_deep_kiss": {
"text": [
"The first time Maya lets the kiss turn deep, she does not give in all at once. She tests it first, mouth soft, then sharper when she realizes you are not rushing her.",
"\"Slow. I want to know what I am agreeing to.\"",
"You kiss her again, deeper this time, and the careful line she was holding starts to blur. Her hand catches your shirt and stays there, fingers tightening whenever your mouth moves deeper.",
"When your tongue brushes hers, Maya makes a small sound she clearly wishes had stayed private.",
"\"Do not look so proud. I am still deciding how good that was.\""
]
},
"first_invite_photoshoot": {
"text": [
"Maya spots the camera on the table and laughs.",
"\"You actually bought one.\"",
"She puts her bag on the chair and looks at the clear patch of wall.",
"\"What do you need?\"",
"You say a full-body picture to start.",
"\"All right. Do not make me stand here while you work out the buttons.\"",
"She walks to the wall, smooths her shirt, and faces the lens.",
"\"Ready when you are.\""
]
},
"first_photo_hand_between_legs": {
"text": [
"You set the camera on the table and put a hand between Maya's legs.",
"She looks down at it.",
"\"You done taking pictures?\"",
"\"For now.\"",
"Your palm presses over her wet pussy. When you rub her clit, her knees part.",
"She catches your wrist as you push one finger inside her.",
"\"Not that fast.\"",
"You move your finger once, then again.",
"She grabs your shoulder. \"There. Keep doing that.\""
]
},
"first_invite_room": {
"text": [
"The first time Maya agrees to come to your room, she makes the answer sound practical because that is easier than admitting it means something.",
"\"Fine. But if your room looks like a crime scene with laundry, I am leaving.\"",
"She steps inside with the careful attention of someone who notices more than she says. The bed. The light. The distance between the door and where you stand.",
"You ask if she is comfortable.",
"\"Not completely.\"",
"Then she looks at you, softer than the joke she is already building.",
"\"But I am still here, so do not waste the part where I am trying.\""
]
},
"first_private_movie": {
"text": [
"The first movie night with Maya lasts maybe ten minutes before both of you stop pretending the movie is the point.",
"She starts with commentary. Too sharp, too accurate, quietly funny enough that you keep watching her instead of the screen.",
"\"If you stare at me through the entire plot, I am charging you for a second ticket.\"",
"You move closer. She lets your shoulder touch hers, then lets the silence sit there until it becomes permission.",
"When your hand finds hers, Maya looks at the screen like it is personally responsible for how warm her fingers feel.",
"\"Fine. But if this movie gets good, I am blaming you for making me miss it.\""
]
},
"first_invite_gallery": {
"text": [
"The first time you take Maya to the gallery, she starts by pretending she is only there to judge the lighting.",
"\"Half of this is rich people explaining beige to each other.\"",
"Then she stops in front of a photograph longer than she means to. Her expression changes, not dramatic, not open, just honest enough that she notices you noticing.",
"You ask what she sees.",
"\"Someone who knew when to leave the mess in the frame.\"",
"She glances at you and the sarcasm comes back softer.",
"\"Do not get sentimental. I am still mostly here for the lighting.\""
]
},
"first_invite_workout": {
"text": [
"The first time Maya agrees to work out with you, she makes it sound like a terrible idea she is generously supervising.",
"\"If you try to impress me and injure yourself, I am not carrying you home.\"",
"She is not effortless. That makes it better. She gets tired, mutters complaints, adjusts her posture, and keeps going with the same stubborn focus she brings to everything else.",
"When you slow down to match her, she notices.",
"\"Do not do that fake noble thing. I can keep up.\"",
"A few minutes later, she adds, quieter:",
"\"But... maybe do not speed up yet.\""
]
},
"first_public_handjob": {
"text": [
"The first time Maya lets her hand slip inside your pants in public, she looks at you like she cannot believe you made the idea real.",
"\"Here? You picked here?\"",
"Her fingers find your cock anyway, hidden under the cover of your clothes.",
"The first stroke is tense and careful. The second is slower, because she feels you twitch in her hand and it clearly does something to her.",
"Maya keeps her face almost normal while her palm moves over your shaft, but the corner of her mouth trembles when your breathing changes.",
"\"Oh, you are bad at hiding that.\"",
"She strokes you again, thumb brushing the head of your cock under the fabric.",
"\"Do not make a sound unless you want us both in trouble.\""
]
},
"first_footjob": {
"text": [
"The first time Maya gives you a footjob, she looks more amused by your reaction than by the act itself.",
"\"This is either very flattering or very strange. I have not decided.\"",
"Her foot presses against your cock through the first slow stroke, testing how much pressure makes your breathing change.",
"You react too clearly. Maya notices, of course she notices.",
"\"Oh.\"",
"The next stroke is slower, her foot dragging along your shaft until your hips tense.",
"The amusement on her face turns warmer and a little less safe.",
"\"So that works. Good to know.\""
]
},
"first_titfuck": {
"text": [
"The first time Maya lets you slide your cock between her tits, she makes you wait only long enough to see how badly you want it.",
"\"You have wanted this for a while.\"",
"She presses her breasts around your cock, warm skin closing tight as you start moving between her tits.",
"The first stroke makes your breath catch. Maya feels the twitch of your cock between her breasts and her expression changes.",
"\"Oh.\"",
"She holds herself tighter around you, letting your shaft rub between her tits while your breathing gets rougher.",
"The joke she was building never quite arrives.",
"\"Fine. I understand. Keep going.\""
]
},
"first_climax_body": {
"text": [
"The first time you cum on Maya's body, she watches your face more than the mess itself, like she wants to understand the exact second you lose control.",
"Your cock jerks, spilling over her skin while her hand stays close enough to feel the last twitch without making a show of it.",
"\"There it is.\"",
"She looks down at the cum on her body, then back at you with a small, tired smile that is softer than the joke she is trying to build.",
"\"You look far too pleased with yourself for someone who just came all over me.\""
]
},
"first_climax_back": {
"text": [
"The first time you cum on Maya's ass, she goes still when she feels the first hot line hit her skin.",
"It is not her favorite kind of attention, not exactly, but she does not move away. She just looks back over her shoulder, breathing through the moment while your cock keeps pulsing over her.",
"\"You really like looking at me like this.\"",
"You tell her yes. Maya huffs like she expected the answer and still wanted to hear it.",
"\"Fine. Enjoy the view. Then find me something to clean up with.\""
]
},
"first_climax_boobs": {
"text": [
"The first time you cum on Maya's tits, she gives you one last warning look, then holds still for it anyway.",
"Your cock jerks over her chest, streaking cum across her skin while her breath catches despite the expression she is trying to hold.",
"\"Your face is giving you away.\"",
"She glances down at the mess, then touches one finger to it like she is annoyed by how much your reaction affects her.",
"\"I should be more offended by how much you wanted that.\""
]
},
"first_climax_face": {
"text": [
"The first time you cum on Maya's face, she does not turn it into a performance. She stays close because she chose to, eyes narrowed like she is daring herself not to flinch.",
"Your cock pulses, painting her cheek and lips while her fingers tighten briefly against your thigh.",
"For a second, neither of you jokes.",
"\"Careful.\"",
"She wipes a little cum from the corner of her mouth with her thumb, still looking at you.",
"\"That is not something you get to make casual.\""
]
},
"first_climax_mouth": {
"text": [
"The first time Maya lets you cum in her mouth, she looks nervous right up until she decides not to pull away.",
"Your cock is heavy on her tongue, her hand tight around your shaft as your warning comes out rough.",
"She hears it and keeps her mouth there.",
"The first pulse hits her tongue and her eyes close hard.",
"You cum into her mouth in thick spurts while her fingers dig into your thigh.",
"Maya swallows once, then again, throat working around your load before she pulls back with wet lips and uneven breathing.",
"For a second she looks genuinely shaken by how much she wanted to prove she could take it.",
"\"Fuck.\"",
"Then, because she is still Maya, she wipes her mouth with the back of her hand and adds, \"Do not look that happy.\""
]
},
"first_climax_public_hand": {
"text": [
"The first time you cum in Maya's hand in public, she looks around once before she lets you finish, practical even when her fingers are wrapped around your cock.",
"You come hard into her hidden palm, the mess trapped between her hand and your clothes while she keeps her face almost normal.",
"\"Do not move.\"",
"Her voice is low enough to vanish under the room around you. Her hand stays closed, warm and wet around what you left there.",
"\"I need to clean my hand, and you need to stop looking proud before someone notices why.\""
]
},
"first_climax_inside_pussy": {
"text": [
"The first time you cum inside Maya's pussy, your warning comes out broken because she is already clenching around you.",
"She hears it, and her legs tighten anyway.",
"\"Inside.\"",
"The word is rough and almost too quiet, but it is enough.",
"Your cock pulses deep in her cunt, filling her while her inner walls squeeze around every spurt.",
"Maya gasps, face flushed, fingers digging into your back as she feels you cum inside her.",
"\"Fuck. I can feel it.\"",
"She keeps you there until the last twitch fades, breathing hard against your mouth.",
"\"Okay. That was... not small.\""
]
},
"first_climax_inside_ass": {
"text": [
"The first time you cum inside Maya's ass, she is already shaking from taking you that deep.",
"You warn her while you are still buried in her tight asshole, every breath between you rough and uneven.",
"Maya grips whatever is under her and nods once.",
"\"Okay.\"",
"Your cock jerks inside her ass, filling her with hot cum while she tries and fails to keep quiet.",
"The first pulse makes her moan. The second makes her push back against you by instinct.",
"When it is over, she stays very still, flushed and stunned, your cock still inside her cum-filled ass.",
"\"Fuck. Give me a second.\""
]
}
}
}
END_FIRST_TIME_DATA %//% FIRST_TIME_DATA
{
"girlId": "g1",
"girl": "Zoe Bellamy",
"notes": [],
"moments": {
"first_meeting": {
"text": [
"You meet Zoe while she is trying to solve a small problem with very little patience.",
"She has the focused look of someone who already found the flaw and is waiting for the world to stop adding noise.",
"You mention the one detail that keeps repeating.",
"Zoe stops and looks at you for the first time.",
"\"You noticed that?\"",
"You say it happened twice while you were waiting.",
"She checks again, adjusts the problem without making a show of it, and watches the result change.",
"\"Huh.\"",
"Her eyes return to you, more curious than friendly.",
"\"Fine. You can stand there. Quietly.\""
]
},
"first_phone_success": {
"text": [
"Zoe takes a moment before giving you her number.",
"She writes it down in small, neat digits, then hesitates with the paper still under her fingers.",
"\"Text first. I do not like surprise calls.\"",
"You ask if she always gives instructions with her number.",
"\"Usually people need more of them.\"",
"She hands it over before the moment can turn awkward.",
"\"You might need fewer. Maybe.\""
]
},
"first_address_success": {
"text": [
"Zoe gives you her address like she is not entirely sure whether she is doing something smart.",
"She writes it once, folds the paper, then hands it over.",
"\"Text before you come over.\"",
"You nod.",
"Her shoulders loosen a little.",
"\"Good.\"",
"A small pause.",
"\"I like knowing when to be nervous.\""
]
},
"first_hug": {
"text": [
"The first hug with Zoe almost stops before it starts.",
"You step closer, she stiffens, and you stop moving.",
"That pause makes the difference.",
"Zoe exhales and steps into you herself.",
"Her arms settle around your back carefully, like she is still learning where to put them.",
"Then her forehead rests against your shoulder.",
"For once, she does not have a correction ready.",
"\"Okay,\" she says into your shirt. \"That is... nice.\""
]
},
"first_kiss_cheek": {
"text": [
"You kiss Zoe's cheek, quick and soft.",
"She blinks, then touches the spot with two fingers before she can pretend she did not react.",
"\"Oh.\"",
"You ask if that was okay.",
"She looks away for half a second.",
"\"Yes. I just did not expect it to feel like anything.\""
]
},
"first_dirty_whisper": {
"text": [
"You wait until Zoe is close enough that nobody else can hear.",
"Then you tell her, plainly, that you want your hand under her clothes and your mouth near her ear while she tries to stay quiet.",
"Zoe does not answer right away.",
"Her breathing changes first.",
"\"That was very specific.\"",
"You say you meant it that way.",
"Her eyes drop to your mouth.",
"\"Say it again later. Somewhere I can do something about it.\""
]
},
"first_massage_start": {
"text": [
"Zoe treats the first massage like something she is allowing herself to test.",
"\"Shoulders first.\"",
"You start over her shirt, thumbs pressing into the stiff line beside her neck.",
"She stays tense at first, then shifts forward a little to give you a better angle.",
"\"Lower.\"",
"Your hands move lower by degrees, giving her time to breathe before your thumbs reach her hips.",
"The silence softens.",
"\"There. Keep it slow.\""
]
},
"first_massage_orgasm": {
"text": [
"Zoe's first massage orgasm starts with her trying to keep the whole thing ordinary.",
"You work her shoulders, then her back, then the tense line of her hips until her breathing goes slow and uneven.",
"When your hand slides lower, she looks away instead of stopping you.",
"By the time your fingers reach her panties, the fabric is damp against her pussy.",
"You rub her through it in slow circles, barely enough at first, until her hips start making the movements bigger for you.",
"Zoe's breath catches. She tries to swallow the sound and fails.",
"\"Fuck.\"",
"Your fingers slip under the edge of her panties and find her clit swollen and slick.",
"She grips your wrist, but only to keep your hand there.",
"You rub her clit with two fingers, then slide them lower into her wet cunt, feeling her tighten around you immediately.",
"Her thighs close around your hand. Her head drops forward, and the next moan comes out broken.",
"\"There. There.\"",
"You keep fingering her, thumb working her clit while her cunt clenches around your fingers in harder, wetter pulls.",
"The orgasm hits before she can make another sentence. Her hips jerk into your hand, her pussy pulsing around your fingers while she moans into her own shoulder.",
"She keeps shaking after the first wave, wet and flushed and still holding your wrist between her legs.",
"\"Wait,\" she breathes, then lets out a weak, embarrassed laugh. \"No. I do not know. Fuck.\""
]
},
"first_meal": {
"cookingVariants": {
"threshold": 45,
"low": [
"You cook for Zoe, and she notices the timing before she comments on the taste.",
"\"You changed the heat because you panicked.\"",
"She still eats another bite.",
"Then she points with her fork.",
"\"Start lower next time. Less rescuing, more planning.\"",
"A pause.",
"\"It is not bad. Just doing too many things at once.\""
],
"high": [
"You cook for Zoe, and she goes quiet after the first bite.",
"Zoe only goes quiet like that when something is worth examining.",
"\"Good. You controlled the heat instead of apologizing with seasoning.\"",
"The meal turns into timing, order, and why small mistakes get bigger when nobody catches them early.",
"When she finishes, she sets the fork down neatly.",
"\"I can do this again.\"",
"She glances up.",
"\"The meal. Possibly the rest of the evening.\""
]
}
},
"first_kiss": {
"text": [
"The first real kiss with Zoe starts carefully.",
"Her mouth is soft for one second. Then she presses in harder, surprising both of you.",
"Your hand settles at her waist, and she does not move it away.",
"When your tongue touches hers, she makes a small sound and immediately kisses you harder to hide it.",
"You pull back just enough to see her face.",
"\"No,\" she says, before you can ask. \"Do not stop because I made a sound.\"",
"Then she kisses you again, less carefully."
]
},
"first_handjob": {
"text": [
"The first time Zoe wraps her hand around your cock, she looks calm enough to make the moment feel almost clinical.",
"Then your shaft twitches in her grip and the calm gets thinner.",
"\"So that is the response.\"",
"Her thumb drags over the head, gathering the slickness there with careful pressure.",
"She watches your breathing change, not smiling yet, but not looking away either.",
"\"Tell me when the pace is wrong. I would rather learn accurately.\"",
"Her hand starts moving again, more confident now that your body has answered her."
]
},
"first_blowjob": {
"text": [
"Zoe does not rush the first blowjob.",
"She sits between your legs and looks at your cock like she is still annoyed by how much she wants to know what you taste like.",
"\"Hands where I can see them.\"",
"Then her fingers wrap around your shaft.",
"She strokes you once, watching your face, then leans in and licks the swollen head.",
"Your cock twitches against her tongue.",
"\"Oh.\"",
"The second lick is slower. Then her lips close around you, warm and careful, taking your cock into her mouth by inches.",
"She has to stop, breathe, adjust her hand, try again.",
"Then she finds the rhythm, and the way you throb on her tongue makes her cheeks flush.",
"She keeps going without another clever line, one hand on your shaft, mouth wet around the head, eyes flicking up whenever your breathing breaks.",
"When you groan, her lips tighten around you for half a second.",
"\"Again,\" she says, barely off your cock. \"Make that sound again.\""
]
},
"first_cunnilingus": {
"text": [
"Zoe lets you go down on her with visible hesitation, but she is already wet by the time you settle between her thighs.",
"\"Do not make a show of it.\"",
"You kiss the inside of her thigh, then the other, giving her a second to stop bracing.",
"When your tongue finally drags up her wet slit, her whole body tightens.",
"\"Oh, fuck.\"",
"The words come out before she can edit them.",
"You lick her pussy again, slower, spreading her folds with your tongue until you find her clit.",
"Zoe's hand goes into your hair. She does not push. She just holds on.",
"Her hips lift toward your mouth anyway.",
"You keep your tongue on her clit until her legs start shaking and her breathing turns into soft, broken little sounds.",
"\"There,\" she whispers. \"There. Fuck.\""
]
},
"first_facesitting": {
"text": [
"Zoe climbs over your face like she is still deciding whether this is a terrible idea.",
"Her thighs settle on either side of your head, wet pussy close enough that you can feel her heat.",
"\"Tap if you need air.\"",
"That is all she says before lowering herself to your mouth.",
"The first lick makes her breath catch. The second makes her thighs tighten.",
"You eat her pussy slowly at first, tongue working her slit and clit while she tries to stay balanced above you.",
"Zoe's hand grabs for anything stable. Her hips roll once before she can stop them.",
"After that, she stops trying to stay perfectly still.",
"Her pussy presses harder against your mouth, slick and hot, and the sound she makes is too breathless to be a command.",
"\"Fuck. Again.\""
]
},
"first_beg_facesit_success": {
"text": [
"You beg Zoe to sit on your face, and for once she does not have a clean answer ready.",
"She looks at your mouth, then at your face, and the flush on her neck gives her away.",
"\"You really want that.\"",
"You say yes.",
"Zoe climbs over you without another lecture, one knee beside your shoulder, wet enough that you can smell her before she lowers herself.",
"\"Fine. Mouth open.\"",
"Her pussy settles onto your tongue, and the first real lick makes her hips dip harder than she meant them to.",
"\"Oh.\"",
"She grips whatever she can reach and stays there, breathing hard, thighs tightening against your cheeks.",
"\"Yes. Like that.\""
]
},
"first_69": {
"text": [
"Zoe agrees to sixty-nine with more curiosity than confidence.",
"\"Fuck. I cannot focus on both.\"",
"She says it, then still positions herself over you, mouth close to your cock while her pussy lowers toward your face.",
"For the first minute it is awkward in a real way: breath, shifting thighs, her hand finding your hip, your tongue learning where she gets sensitive.",
"Then her lips close around your cock and your mouth finds her clit at the same time.",
"Zoe moans around you, surprised enough that the sound turns sloppy.",
"She pulls off to breathe and her hips grind once against your mouth before she catches herself.",
"\"Fuck,\" she whispers.",
"Then she takes your cock back into her mouth before she can say anything smarter."
]
},
"first_rub_pussy_fabric_public": {
"text": [
"Zoe's eyes sweep the room once before her body admits she feels your fingers.",
"Her eyes move once, quick and sharp, then return to you.",
"\"Small movements.\"",
"Your fingers press against her slit through the fabric. She goes still, but the heat under your hand is immediate.",
"You rub her slowly, barely enough to disturb her posture, and feel the cloth grow wetter against her pussy.",
"Zoe's knees press together around your hand for half a second.",
"Her lips part, then close again before the sound can escape.",
"\"Fuck,\" she whispers, staring straight ahead. \"I can feel how wet that is.\""
]
},
"first_fingering": {
"text": [
"The first time your fingers slide into Zoe's pussy, she grabs your wrist and then does not pull you away.",
"Her cunt is wet enough that the first finger goes in slowly but easily, her inner walls tightening around you as her breath catches.",
"\"Wait.\"",
"You stop with your finger still inside her.",
"Zoe's eyes close, and her grip on your wrist changes.",
"\"No. Not out.\"",
"You start moving again, rubbing her clit with your thumb while your finger works deeper inside her.",
"Her legs part a little more.",
"You add a second finger and Zoe swears under her breath, hips jerking once before she can hide it.",
"\"Oh. Fuck.\"",
"After that, she stops giving directions. Her cunt keeps doing it for her, clenching and pulling around your fingers every time you curl them inside her."
]
},
"first_analingus": {
"text": [
"Zoe needs the first time your mouth moves to her ass to feel deliberate, not like a joke you are trying on her.",
"She looks back once, cheeks already flushed.",
"\"You are actually serious.\"",
"You kiss the inside of her thigh, then lower, spreading her enough to put your mouth where she is tightest.",
"The first touch of your tongue against her asshole makes her go completely still.",
"\"Oh.\"",
"You lick her again, slow and filthy, tongue circling the tight little hole until her fingers grip the surface beneath her.",
"Her voice comes out thinner than before.",
"\"Again.\"",
"You do it again, and this time her hips move back toward your mouth by themselves."
]
},
"first_ask_sex_success": {
"text": [
"You ask Zoe for sex, and she looks at you for a few seconds without answering.",
"Her face goes quiet while the yes catches up to the rest of her.",
"\"Yes.\"",
"The word comes out plain, almost too quiet.",
"She steps closer and puts one hand on your chest.",
"\"Slow at first. I want to feel all of it.\""
]
},
"first_beg_sex_success": {
"text": [
"You beg Zoe for sex, and the need in your voice hits her harder than she expects.",
"She looks away once, but her hand has already caught the front of your shirt.",
"You say it again, simpler this time. You want her. You want to be inside her.",
"Zoe's breath catches.",
"\"Good.\"",
"She pulls you closer.",
"\"Come here before I think about it too much.\""
]
},
"first_demand_sex_success": {
"text": [
"You demand sex from Zoe, and her first reaction is a long, sharp look.",
"For a second you think you pushed too hard.",
"Then her eyes drop to your mouth and back up.",
"\"Say that again.\"",
"You do, lower this time, making it clear you want her, not just any body under you.",
"That is what changes her expression.",
"She steps into you, close enough that her voice loses its clean edge.",
"\"Now.\""
]
},
"first_vaginal_intro": {
"text": [
"When the head of your cock presses against Zoe's wet slit for the first time, she stops breathing for a second.",
"Her hand tightens on your arm.",
"\"Wait.\"",
"You hold still with your cock right there, slick against her entrance.",
"Zoe looks down between you, then back at your face, flushed and more naked than her body alone could make her.",
"\"Okay. Slow.\"",
"You push in by inches. Her pussy stretches around you, tight and wet, and the first real slide inside makes her mouth fall open.",
"\"Fuck,\" she whispers. \"I felt that everywhere.\""
]
},
"first_anal_intro": {
"text": [
"Zoe's first anal starts quiet and tense, with her body trying to decide whether curiosity was a terrible idea.",
"You slick your cock and press the head against her asshole.",
"Her fingers twist in the fabric beneath her.",
"\"Slow.\"",
"That is all she gets out before the first pressure starts to open her.",
"You push in carefully, inch by inch, feeling her tight ass resist and then give around your cock.",
"Zoe's breath breaks when the stretch becomes too real to analyze.",
"\"Fuck. Wait. No, keep it there. Just... let me catch up.\""
]
},
"first_position_missionary": {
"text": [
"Missionary lets Zoe keep your face close while your cock fills her pussy.",
"She watches you at first, trying to stay composed, but every slow thrust makes that harder.",
"Her nipples are already stiff against your chest, betraying her faster than her mouth does.",
"When you push deeper, her cunt clenches around you and she gasps right into your mouth.",
"\"Stay close,\" she says. \"I like seeing what I am doing to you.\""
]
},
"first_position_cowgirl": {
"text": [
"Zoe chooses cowgirl with more curiosity than confidence.",
"She lowers herself onto your cock slowly, lips parted, hands braced on your chest while her pussy takes you inch by inch.",
"At first she watches the way you react to her.",
"Then the fullness hits her and her hips stop halfway down.",
"\"Oh.\"",
"You stay still until she starts moving again on her own, careful at first, then less careful when her body realizes how good the angle feels.",
"Her breath turns shaky when she finds it.",
"\"There. Fuck. That.\""
]
},
"first_position_reverse_cowgirl": {
"text": [
"Zoe turns away before taking you, hiding her face while her body becomes harder to hide.",
"She sinks down on your cock with her back to you, shoulders tense, hips careful as her pussy takes you deeper.",
"You see the moment she stops trying to look composed. Her head dips, her breath shakes, and her thighs press tighter around your hips.",
"Your hands settle on her waist.",
"This time she does not correct them.",
"She starts moving, slow and uneven, then harder when the angle makes her clench.",
"\"Okay,\" she says, rougher than before. \"I feel it.\""
]
},
"first_position_doggy": {
"text": [
"Doggy makes Zoe tense at first, then the first deep thrust pulls the hesitation out of her.",
"She braces herself on her hands, then looks back once as your cock presses against her wet pussy from behind.",
"\"Start slow.\"",
"You push into her carefully, feeling her cunt stretch around you from an angle that makes her shoulders tense.",
"The first thrusts are quiet. Then your hips find a deeper stroke and Zoe's head drops between her arms.",
"\"Fuck. There.\"",
"You do it again, and her back arches before she can make it look intentional."
]
},
"first_position_wall": {
"text": [
"Against the wall, Zoe looks more exposed than she expected.",
"You lift and brace her carefully, and her legs tighten around you as your cock lines up with her pussy.",
"\"This is a bad idea.\"",
"She says it while pulling you closer.",
"You push inside her, slow enough to keep her steady, deep enough to make her grip your shoulders hard.",
"Zoe bites back a moan and fails halfway through it.",
"\"Okay,\" she breathes, almost laughing. \"Bad idea. Still good.\""
]
},
"first_anal_position_missionary": {
"text": [
"For first anal in missionary, Zoe keeps you close enough that she can bury her reaction against your mouth if she needs to.",
"Your cock presses into her ass slowly, stretching her tight asshole while her fingers grip your shoulders.",
"\"Do not rush.\"",
"You do not. You give her every inch by degrees until her body stops fighting the pressure and starts taking you.",
"When you finally settle deeper inside her ass, Zoe exhales shakily against your lips.",
"\"Fuck. That is a lot.\"",
"Her legs pull you closer before her mouth can add anything else."
]
},
"first_anal_position_cowgirl": {
"text": [
"Zoe takes cowgirl for anal because she wants to decide how fast her ass has to open around you.",
"She lowers herself onto your cock with her hands braced on your chest, stopping when the stretch makes her jaw tighten.",
"At first it is all breath and tiny movements.",
"Then she sinks another inch and makes a sound she clearly did not plan.",
"\"Oh.\"",
"Her ass tightens around your cock, then gives a little more.",
"Her eyes go unfocused for a second.",
"\"Fuck. I see why people lose words here.\""
]
},
"first_anal_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl anal lets Zoe hide her face while leaving the rest of her exposed to you.",
"Her back is tense as she lowers herself onto your cock, ass stretching slowly around the head.",
"Halfway down, she stops and grips your thigh.",
"\"Fuck.\"",
"No explanation follows. She just breathes, then takes another inch.",
"When she finally settles lower, her shoulders tremble.",
"Her asshole tightens around your cock, and her grip on your thigh hardens.",
"\"Do not say anything,\" she breathes. \"I can feel you looking.\""
]
},
"first_anal_position_doggy": {
"text": [
"Doggy anal makes Zoe look more vulnerable than she wants to, and for once she does not cover it with a clever line.",
"She braces herself, breath already uneven, while you press the head of your cock to her asshole.",
"\"Slow first.\"",
"You push into her tight ass carefully, feeling the resistance give by tiny degrees.",
"Zoe's fingers twist against the surface beneath her. Her hips pull away once, then push back on their own.",
"\"There.\"",
"The word breaks when you slide a little deeper.",
"\"More. A little more.\""
]
},
"first_anal_position_wall": {
"text": [
"Wall anal leaves Zoe shaking before you are even fully inside her.",
"The position makes everything too close: your hands on her, her breath against the wall, your cock pressing into her tight asshole from behind.",
"\"Hold me steady.\"",
"You do, and start pushing in slow.",
"Her ass stretches around you inch by inch, and the first deep slide makes her moan before she can swallow it.",
"\"Fuck. I heard that.\"",
"A breathless, embarrassed laugh slips out of her.",
"\"Keep going anyway.\""
]
},
"first_sex": {
"text": [
"The first time your cock sinks fully into Zoe's pussy, her careful expression does not survive the feeling.",
"She is tight, wet, and hotter than she looked ready to admit, her inner walls clenching around you with every slow inch.",
"She tries to breathe through the first thrust like it is something she can manage.",
"Then you move again and the sound comes out of her anyway.",
"\"Fuck.\"",
"Her legs tighten around you as you fuck her slowly at first, then deeper when her hips start meeting yours.",
"\"More,\" she says, almost angry at how simple the word is. \"I want more.\""
]
},
"first_anal": {
"text": [
"Zoe's first anal is slow until it is not.",
"At first every inch matters: your cock pressing in, her tight asshole stretching, her breath catching when her body gives a little more.",
"She keeps her face turned down until the next inch pulls a rough sound out of her.",
"Then you settle deep enough that she cannot pretend it is small.",
"\"Fuck.\"",
"Her voice is thin, almost stunned.",
"You hold still inside her ass while her body trembles around you.",
"Then her hips move back by a fraction.",
"\"Again,\" she whispers. \"Slow.\""
]
},
"first_demand_anal_success": {
"text": [
"You demand anal from Zoe, and for a second the pause gets too sharp.",
"She looks at you, then down at your cock, then away again.",
"\"You really decided to say that out loud.\"",
"You say it again, lower, less like a line and more like something you actually want from her.",
"Zoe's face flushes before she can hide it.",
"\"Fuck.\"",
"She steps closer.",
"\"I might want that too.\""
]
},
"first_undress_top_off": {
"text": [
"Zoe takes her top off with quick, neat movements, like going slowly would make the moment too large.",
"The fabric comes away, leaving her bra pulled tight over nipples that are already hard.",
"She notices your eyes drop.",
"For a second, she looks like she might say something sharp.",
"Instead she just breathes in, and her nipples press harder against the fabric.",
"\"They do that fast,\" she says. \"You noticed.\""
]
},
"first_undress_bra_off": {
"text": [
"Zoe unhooks her bra and pauses before letting it fall.",
"When she does, her tits are bare and her nipples are already stiff, flushed, and too sensitive for her calm face to be convincing.",
"You look at them and she looks at you looking.",
"\"Yes,\" she says, quieter than expected.",
"\"They are sensitive.\"",
"A breath.",
"\"Touch them slowly.\""
]
},
"first_undress_bottom_off": {
"text": [
"Zoe slides her bottoms down without looking away from you.",
"It is not a show. That somehow makes it feel more intimate.",
"She steps out of them, bare legs close enough to touch yours.",
"\"You can look.\"",
"You do.",
"Her mouth tightens like she regrets how much she likes being watched.",
"\"Okay. That was enough to affect you.\""
]
},
"first_undress_panties_off": {
"text": [
"Zoe's panties come off last.",
"She folds them automatically, then sees your eyes drop and seems to realize how absurd that habit is when she is bare in front of you.",
"Her pussy is already wet, her slit glistening in the low light.",
"For a second, the careful version of Zoe has nothing useful to say.",
"\"I know,\" she says at last.",
"You have not spoken yet.",
"\"That is why I said it first.\""
]
},
"first_massage_undress_top_off": {
"text": [
"During the massage, Zoe removes her top only after your hands have stayed useful for long enough.",
"\"The fabric is in the way.\"",
"It is a practical excuse, and both of you know it.",
"Your thumbs return to her shoulders, now against bare skin.",
"The next breath she takes is not practical at all.",
"\"Same place. A little harder.\""
]
},
"first_massage_undress_bra_off": {
"text": [
"Zoe hesitates before removing her bra during the massage.",
"This layer changes more than the last one did.",
"She takes it off and lies back down with her tits bare, nipples already hard from air, nerves, and anticipation.",
"Your hands return carefully to her back and shoulders.",
"Zoe exhales.",
"\"I felt you notice.\"",
"A pause.",
"\"I liked that. Keep going.\""
]
},
"first_massage_undress_bottom_off": {
"text": [
"Zoe removes her bottoms during the massage with a quiet efficiency that almost hides how much the choice affects her.",
"Almost.",
"Her legs shift when your hands return to her lower back and hips.",
"You keep the touch slow, thumbs working the tense line above her ass.",
"Her thighs part a little.",
"\"That was not an accident,\" she says, barely above a whisper."
]
},
"first_massage_undress_panties_off": {
"text": [
"When Zoe slips her panties off during the massage, she keeps her face turned away.",
"Her pussy is wet enough that pretending this is only practical would insult both of you.",
"You rest your hand near her thigh and wait until her legs part by themselves.",
"\"Now,\" she says.",
"It comes out too fast, too needy, and her face goes red.",
"\"I mean... touch me.\""
]
},
"first_slide_inside_panties_public": {
"text": [
"Your fingers slip inside Zoe's panties in public, and her first reaction is a quick scan of the room.",
"Only after that does she feel your hand.",
"Her pussy is already slick, hidden under fabric and the stillness she is trying to keep on her face.",
"\"Small movements.\"",
"You rub her clit in tiny strokes, barely moving your wrist.",
"Her breath catches under the noise around you.",
"The fabric shifts against your knuckles, warmer and wetter with every second.",
"\"Fuck,\" she whispers, staring straight ahead. \"I can feel how wet that is.\""
]
},
"first_deep_kiss": {
"text": [
"The first deep kiss with Zoe starts as something careful and turns into something neither of you can keep tidy.",
"Her mouth opens slowly under yours.",
"When your tongue touches hers, she makes a small sound and chases it before she can think better of it.",
"Your hand tightens at her waist.",
"Zoe presses closer instead of correcting you.",
"\"Again,\" she says, almost against your mouth.",
"So you kiss her again, and this time she stops pretending she is only testing it."
]
},
"first_invite_photoshoot": {
"text": [
"Zoe looks at the camera first.",
"She picks it up, changes one setting, and hands it back.",
"\"You had it on auto.\"",
"You ask her to stand by the wall.",
"\"For one picture.\"",
"She folds her coat over the chair and goes there.",
"\"Show me the screen after.\"",
"You lift the camera.",
"\"Not from that side. The light is better here.\""
]
},
"first_photo_hand_between_legs": {
"text": [
"You put the camera down. Zoe watches your hand slip between her legs.",
"\"Wait. What are you doing?\"",
"\"I want to touch you.\"",
"She looks down and pulls her thighs apart.",
"\"Then do not fumble.\"",
"Your fingers move through her wet pussy and circle her clit.",
"Zoe grips the edge of the table when you push one finger inside her.",
"\"That's... okay. Keep that.\""
]
},
"first_invite_room": {
"text": [
"The first time Zoe agrees to come to your room, she looks more nervous than she wants to.",
"\"Send me the address.\"",
"When she arrives, she notices the door, the bed, the light, and the places sound might carry.",
"You ask if she wants to leave.",
"\"No.\"",
"The answer comes quickly.",
"Then, softer:",
"\"I am trying to decide what this room says about you.\""
]
},
"first_private_movie": {
"text": [
"The first private movie with Zoe starts with her adjusting the volume before the opening scene finishes.",
"\"Too loud makes it obvious. Too quiet makes it suspicious.\"",
"She sits close enough that your thigh touches hers.",
"For a while, both of you pretend to watch.",
"When your hand finds hers, she keeps her eyes on the screen.",
"Her fingers tighten around yours.",
"\"The movie is loud enough that I can stop pretending the silence is protecting me.\"",
"A pause.",
"\"That means I like it.\""
]
},
"first_invite_gallery": {
"text": [
"The first gallery walk with Zoe is more awkward than romantic, which somehow makes it better.",
"\"I do not know what I am supposed to say about most of this.\"",
"You ask what she notices anyway.",
"She stops in front of a photograph with too much empty space and a shadow that almost looks accidental.",
"\"That part.\"",
"She points, then frowns at herself for caring.",
"\"The empty space is doing more work than the subject.\""
]
},
"first_invite_workout": {
"text": [
"The first time Zoe agrees to train with you, she makes it clear that agreement is not enthusiasm.",
"\"I am not doing competitive suffering.\"",
"She follows the instructions carefully, corrects one thing you explain badly, and looks offended when her body gets tired faster than her mind does.",
"You slow down without making a point of it.",
"Zoe notices anyway.",
"\"Thank you for not making that obvious.\""
]
},
"first_public_handjob": {
"text": [
"The first time Zoe wraps her hand around your cock in public, she looks calm enough to be mistaken for innocent.",
"That is the point.",
"Her fingers move under cover, small and steady, every stroke hidden by posture and timing.",
"\"Try not to look like I have my hand around your cock.\"",
"You try. She feels you twitch in her hand and her mouth tightens.",
"\"Good. Your face only gave you away once.\"",
"Her thumb slides over the head of your cock, slow enough to make normal much harder.",
"\"Keep pretending,\" she murmurs, fingers tightening around your cock."
]
},
"first_footjob": {
"text": [
"The first footjob with Zoe feels less like something she planned and more like a test she did not expect to enjoy.",
"\"This should not be working as well as it is.\"",
"She says it while pressing her foot against your cock again.",
"The second stroke is slower.",
"\"But not useless.\"",
"She watches your breathing change, thoughtful and faintly flushed.",
"Her toes press under the shaft, dragging a reaction out of you.",
"\"Oh. That works more than I expected.\""
]
},
"first_titfuck": {
"text": [
"The first time Zoe lets you slide your cock between her tits, she looks nervous for a reason she cannot hide.",
"Her breasts are already sensitive, nipples hard before your cock even touches them.",
"\"They are going to react.\"",
"You press between her tits, and she sucks in a breath at the friction against her own skin.",
"Her hands close around her breasts, holding them around your shaft while you start moving.",
"Your cock slides between her tits, rubbing against stiff nipples and warm skin.",
"\"Fuck,\" she says, surprised by herself. \"Okay. I feel why you wanted this.\""
]
},
"first_climax_body": {
"text": [
"The first time you cum on Zoe's body, she watches your face until your control breaks.",
"Your cock jerks in your hand, spilling hot cum over her skin.",
"Zoe's breath catches when the first streak hits her.",
"\"Oh.\"",
"You pulse again, painting her stomach and thigh while she looks down at the mess you made.",
"Her voice comes back quieter.",
"\"I wanted to see that.\""
]
},
"first_climax_back": {
"text": [
"The first time you cum on Zoe's ass, she stays still when the first hot line hits her skin.",
"Your cock pulses behind her, streaking cum over her ass while her shoulders tighten.",
"She looks back just enough to see your face.",
"\"You are very obvious right now.\"",
"You spill the last of it over her, and she exhales through her nose.",
"\"I do not hate that.\""
]
},
"first_climax_boobs": {
"text": [
"The first time you cum on Zoe's tits, it affects her more than she expected.",
"Your cock jerks, painting her sensitive breasts while her nipples stay hard under the heat of it.",
"She looks down, breathing shallowly as cum streaks over her skin.",
"\"Oh.\"",
"Another pulse lands across her nipple, and her mouth tightens around a sound she almost hides.",
"\"Fuck. I did not expect that to feel so good on my skin.\""
]
},
"first_climax_face": {
"text": [
"The first time you cum on Zoe's face, she keeps her eyes on you until the last second.",
"Your cock pulses, and the first streak of cum lands across her cheek.",
"She flinches once, more from shock than refusal.",
"Another shot catches near her lips.",
"For a second, neither of you says anything.",
"Zoe wipes a little from the corner of her mouth with her thumb and stares at it.",
"\"Fuck. That was intense.\""
]
},
"first_climax_mouth": {
"text": [
"The first time Zoe lets you cum in her mouth, she looks nervous right up until she decides not to pull away.",
"Your cock is deep enough on her tongue that your warning comes out rough.",
"She hears it and keeps her mouth there.",
"The first pulse hits her tongue, and her eyes close hard.",
"You cum into her mouth in thick spurts while her fingers dig into your thigh.",
"She swallows once, then again, throat working around your load.",
"When she pulls back, her lips are wet and her breathing is uneven.",
"\"I wanted to know if I could do that.\"",
"A small pause.",
"\"I can.\""
]
},
"first_climax_public_hand": {
"text": [
"The first time you cum in Zoe's hand in public, the whole thing stays hidden by inches.",
"Her palm closes around your cock under cover, stroking just enough to push you over the edge.",
"\"Quiet.\"",
"You cum into her hand, hot and messy, while she keeps her face still enough to fool anyone not looking closely.",
"Her fingers close around the mess, holding your load against her palm.",
"Zoe stares straight ahead, cheeks flushed.",
"\"I can feel it,\" she whispers. \"Do not make me laugh right now.\""
]
},
"first_climax_inside_pussy": {
"text": [
"The first time you cum inside Zoe's pussy, your warning comes out broken because she is already clenching around you.",
"She hears it and pulls you closer instead of away.",
"\"Inside.\"",
"The word is barely there, but it is enough.",
"Your cock pulses deep in her cunt, filling her while her inner walls tighten around every spurt.",
"Zoe gasps, legs locked around you, face flushed and stunned by how much she feels it.",
"\"Fuck. I can feel you cumming.\"",
"She keeps you inside until the last twitch fades.",
"\"Do not pull out yet.\""
]
},
"first_climax_inside_ass": {
"text": [
"The first time you cum inside Zoe's ass, she is already shaking from taking you that deep.",
"You warn her, still buried in her tight asshole.",
"She grips whatever is under her and nods once.",
"\"Okay.\"",
"Your cock jerks inside her ass, filling her with hot cum while she tries and fails to keep her breathing steady.",
"The first pulse makes her moan. The second makes her push back against you by instinct.",
"When it is over, she stays very still, flushed and stunned.",
"\"Give me a second,\" she whispers. \"Fuck.\""
]
}
}
}
END_FIRST_TIME_DATA %//% FIRST_TIME_DATA
{
"girlId": "g2",
"girl": "Iris Moon",
"notes": [],
"moments": {
"first_meeting": {
"text": [
"You first meet Iris because she notices you looking at the smudge of charcoal on her hand before she notices it herself.",
"She rubs at it too quickly, only making it worse.",
"\"Sorry. I look like I lost a fight with a pencil.\"",
"You say it suits her.",
"Iris looks down at her fingers, then back at you, uncertain whether that was a compliment she is allowed to keep.",
"\"That is probably the nicest possible description of being covered in graphite.\"",
"She gives a small, nervous smile.",
"\"I am Iris. I usually make less sense before I introduce myself, so this is progress.\""
]
},
"first_phone_success": {
"text": [
"Iris gives you her number after writing it, crossing out one digit, and then rewriting the entire thing because the mistake bothered her.",
"\"That was dramatic for a phone number.\"",
"She tears the corner of the page carefully and hands it to you.",
"Her fingers touch yours for half a second and she looks away first.",
"\"You can text me. I mean, I would like that.\"",
"A pause.",
"\"If I answer too fast, pretend I was doing something normal first.\""
]
},
"first_address_success": {
"text": [
"Iris gives you her address like she is asking you to be kind to the version of her that lives there.",
"\"It is messy. Not interesting messy. Just... objects everywhere messy.\"",
"You say you do not mind.",
"She nods, then writes the address in small careful letters.",
"\"Text before you come. Not because I do not want you there.\"",
"Her cheeks warm.",
"\"I just need time to move laundry out of the visible universe.\""
]
},
"first_hug": {
"text": [
"The first hug with Iris begins with her hands hovering like she forgot how arms work.",
"You step close slowly.",
"She lets herself lean in.",
"Her body is tense for the first breath, then softer on the second, sweater and hair and the faint smell of graphite near your shoulder.",
"\"Oh.\"",
"The sound is small and surprised.",
"Her fingers curl into your shirt.",
"\"I thought I would feel more awkward than this.\"",
"She stays where she is.",
"\"I mean, I am awkward. Just... not unhappy.\""
]
},
"first_kiss_cheek": {
"text": [
"You kiss Iris on the cheek, and she freezes so completely that for a second you think you misread everything.",
"Then her hand rises to the spot your mouth touched.",
"\"That was nice.\"",
"She says it too quickly, then blushes because it was too honest.",
"\"Sorry. I did not mean nice like boring nice. I meant nice like my brain stopped for a second.\"",
"She looks down.",
"\"That sounded worse. I liked it.\""
]
},
"first_dirty_whisper": {
"text": [
"You lean close and tell Iris what you want, low enough that the words stay between you.",
"Your hands on her thighs, her skirt pushed higher, her trying to keep quiet while your fingers make that impossible.",
"Iris goes very still.",
"Her eyes drop to your mouth, then to the floor.",
"\"I pictured that immediately.\"",
"She covers part of her face with one hand.",
"\"I pictured that immediately, and now I cannot look normal.\"",
"You ask if she wants you to stop.",
"She shakes her head before you finish.",
"\"No. Please keep talking. I might melt into the floor, but keep talking.\""
]
},
"first_massage_start": {
"text": [
"Iris accepts the first massage with the nervous gratitude of someone who wants touch but does not know how to ask for it.",
"\"My shoulders are always bad. I think I hold anxiety there. And possibly every failed sketch.\"",
"You start gently over her clothes.",
"She watches your hands until the first slow press makes her eyes close.",
"\"Oh.\"",
"Her voice is softer now.",
"\"That is better than I expected. Sorry, I do not know why I apologized.\"",
"You keep going, and she stops trying to comment on every reaction."
]
},
"first_massage_orgasm": {
"text": [
"Iris's first massage orgasm starts with her trying to stay the observer, even while your hands make her body the subject.",
"You work her shoulders first, then her back, slow enough that she can pretend she is studying the sensation instead of falling into it.",
"Her breathing softens in little uneven strokes, like a sketch line losing control of its shape.",
"When your hand settles near her thigh, she looks back with wide, uncertain eyes.",
"\"Is that okay? I mean... I think it is okay.\"",
"You ask if she wants you to keep going.",
"Her answer is barely louder than a breath.",
"\"Yes.\"",
"Your fingers press between her legs through the fabric, and Iris goes still in a way that makes every tiny reaction easier to see.",
"She is already damp under your hand.",
"\"Oh no. You can probably feel that.\"",
"You rub her pussy through the fabric, slow and patient, until her hips twitch into the pressure and she notices you noticing it.",
"Her face turns toward her arm.",
"\"I know you can see me reacting.\"",
"Your fingers slip under her panties and find her clit slick and swollen.",
"The first circle ruins the pose.",
"\"Fuck.\"",
"You slide one finger into her wet cunt, then a second when her thighs part for you, thumb still working her clit.",
"Iris moans into her sleeve, but the hidden sound only makes the rest of her more visible: hips moving, thighs trembling, pussy tightening around your fingers with every stroke.",
"\"Please. I do not know what I am doing. Please keep doing that.\"",
"The orgasm breaks through her in a trembling rush. Her cunt clenches hard around your fingers, hips grinding into your hand while every hidden reaction becomes visible.",
"She gasps and moans like every sound embarrasses her and turns her on more.",
"Afterward, she stays folded forward, wet and flushed and breathing fast.",
"\"I think I left my body for a second.\"",
"A shaky breath.",
"\"No. I was in it too much.\""
]
},
"first_meal": {
"cookingVariants": {
"threshold": 45,
"low": [
"You cook for Iris, and she watches with the anxious focus of someone afraid of being asked to help at the wrong time.",
"\"That color changed. Is it supposed to?\"",
"You say probably.",
"She looks uncertain but sits down anyway.",
"The meal is imperfect. Iris eats it like she is trying to be brave for both of you.",
"\"It is warm. Warm helps.\"",
"She smiles shyly.",
"\"Also you made it, so I am biased.\""
],
"high": [
"You cook well enough that Iris stops narrating her nervousness and simply eats.",
"\"Oh. That is actually good.\"",
"She looks surprised, then embarrassed by sounding surprised.",
"The conversation drifts through food colors, texture, and the strange comfort of someone doing a practical thing with care.",
"\"I like this,\" she says quietly.",
"She looks down at the plate.",
"\"Not just the food. The being cared for part. Sorry, that sounded dramatic.\""
]
}
},
"first_kiss": {
"text": [
"The first real kiss with Iris starts so softly that she has time to panic and want it at the same time.",
"Your mouth touches hers.",
"She kisses back carefully, almost asking with every movement.",
"When your tongue brushes her lips, she makes a small sound and grabs your sleeve.",
"You slow down, and she follows you instead of letting the kiss end.",
"\"No, I liked it.\"",
"The words come out too fast.",
"Her cheeks burn.",
"\"I mean, I liked your tongue. That sounded awful. Please kiss me again before I keep talking.\""
]
},
"first_handjob": {
"text": [
"The first time Iris wraps her hand around your cock, she looks startled by how real the heat of you feels in her palm.",
"Her grip is careful at first, fingers shifting like she is afraid of doing it wrong.",
"\"I am staring again. Sorry.\"",
"You tell her she can look, and that makes her blush without making her let go.",
"When your cock throbs in her hand, her breath catches and her thumb moves over the head by instinct.",
"\"Oh. That changed because of me.\"",
"The next stroke is still nervous, but it is slower, warmer, and much more curious."
]
},
"first_blowjob": {
"text": [
"The first time Iris puts her mouth on your cock, she looks overwhelmed by how different it is to study something that reacts to her.",
"Her fingers wrap around your shaft carefully, thumb brushing the head until precum shines at the tip.",
"\"I am staring. Sorry.\"",
"You tell her she can look.",
"That makes her blush harder, but she keeps looking.",
"She leans in and licks the head of your cock, tasting the precum with a nervous little inhale.",
"\"Oh.\"",
"Her lips part and take you into her mouth.",
"The first inches are slow and careful, tongue pressing under your shaft while her hand strokes what she cannot take yet.",
"Your cock throbs against her tongue and her eyes lift to your face, searching for the moment her mouth changes you.",
"Your groan answers her.",
"She takes you again, a little deeper, mouth warm and wet, lips slick around your cock.",
"When she pulls back for air, her voice is small and dazed.",
"\"I like seeing what my mouth does to you.\"",
"She looks embarrassed by how much that matters to her.",
"\"That sounds strange. But I do.\"",
"Then she puts her mouth back on you before she can soften the truth, watching your face while her tongue works under your shaft."
]
},
"first_cunnilingus": {
"text": [
"Iris is almost too embarrassed to let you settle between her thighs.",
"She keeps looking at the ceiling, then at your face, then away again.",
"\"I am going to make a stupid sound.\"",
"You kiss the inside of her thigh, and her whole body tightens from that alone.",
"Your mouth moves higher.",
"When your tongue drags up her wet slit, the sound comes out immediately.",
"You lick her pussy again, spreading her folds with your tongue until you find her clit.",
"\"Oh my god.\"",
"Her hands cover her face.",
"You keep your mouth on her, tongue circling her swollen clit while her hips lift in shy little jerks.",
"She tries to apologize for moving and turns it into a moan instead.",
"\"There. Please. There.\""
]
},
"first_facesitting": {
"text": [
"Iris climbs over your face like she is certain the whole universe can see how nervous she is.",
"\"I do not know where to put my hands.\"",
"You guide her down gently.",
"Her wet pussy lowers to your mouth, and the first lick makes her gasp.",
"\"Oh. Sorry. I almost sat too fast.\"",
"You lick her again, tongue sliding through her wet folds to her clit from below.",
"Iris trembles over you, thighs tense beside your head, hands grabbing for balance.",
"For a few seconds she keeps hovering.",
"Then pleasure makes her sink closer.",
"\"I can feel your mouth everywhere.\"",
"Her hips move once, tiny and accidental.",
"You keep licking her clit until the second movement is not accidental at all."
]
},
"first_beg_facesit_success": {
"text": [
"You beg Iris to sit on your face, and the request turns her red down to her throat.",
"\"You want that? With me on you like that?\"",
"You say yes.",
"She swallows, clearly affected by how much you want it.",
"\"I think I want to. I am just scared I will do it wrong.\"",
"You tell her she cannot do it wrong if she feels good.",
"That makes her eyes go soft.",
"She climbs over you, hands trembling, wet pussy lowering toward your mouth.",
"The first lick makes her gasp.",
"\"Oh. Okay. That helps.\"",
"Her hips dip closer, shy and needy at once."
]
},
"first_69": {
"text": [
"Iris agrees to sixty-nine because curiosity gets there before courage, and then courage has to catch up.",
"\"I am going to lose track of everything.\"",
"She positions herself over you, her wet pussy lowering toward your mouth while her lips hover near your cock.",
"For a second, Iris sees the shape of it too clearly: your face between her thighs, her mouth near your cock, nowhere left to hide.",
"Your tongue touches her slit at the same moment her fingers close around your shaft.",
"Iris gasps and almost forgets the cock in front of her.",
"Then she lowers her mouth around the head.",
"Her lips are wet and careful, tongue shy under your shaft while your mouth works her pussy from below.",
"When your tongue finds her clit, she moans around your cock.",
"The vibration runs through you, and her eyes widen like she felt your reaction in her mouth.",
"She pulls back, breathing hard, flushed by the proof that both of you are watching each other fall apart.",
"\"Too much,\" she gasps, and then takes you back into her mouth anyway.",
"You lick her clit again.",
"Her hips tremble and she takes you back into her mouth, less careful now, trying to suck you while her own pussy gets wetter against your tongue.",
"The more she loses focus, the more clearly Iris becomes the thing she would have stared at in a drawing: mouth full, thighs shaking, cunt wet, body too honest to hide."
]
},
"first_rub_pussy_fabric_public": {
"text": [
"The first time you rub Iris's pussy through fabric in public, she looks like the room has become full of eyes even when no one is watching.",
"Her gaze darts to the nearest reflection, then down to your hand.",
"\"Someone might notice.\"",
"You keep the touch small, fingers pressing against her slit through the fabric.",
"She does not move away.",
"The cloth warms under your fingertips, then grows damp as you rub her gently.",
"Iris looks mortified by how fast her body gives her away.",
"\"I am getting wet.\"",
"She whispers it like a confession.",
"Your fingers move again and her knees press together around your hand.",
"For a second her eyes catch the reflected shape of both of you, and that makes the blush worse.",
"\"Please be careful. I still want it. Just... careful.\""
]
},
"first_fingering": {
"text": [
"The first time your fingers touch Iris's bare pussy, she can barely look at you.",
"She is wet enough that the first touch makes her blush harder than being naked.",
"\"Sorry. I am really...\"",
"She cannot finish the sentence.",
"You rub her clit in slow circles, and her thighs twitch around your hand.",
"Your first finger slides into her cunt, slick and tight.",
"Iris gasps, eyes closing immediately.",
"\"Oh. That is inside me.\"",
"You move slowly, thumb still working her clit while her pussy clenches around your finger.",
"When you add a second finger, she grips your wrist and then immediately loosens her hand, afraid you will think she wants you to stop.",
"\"No, keep going. Please.\"",
"You curl your fingers and her hips lift into your hand.",
"\"Fuck. Again. Please again.\""
]
},
"first_analingus": {
"text": [
"Iris goes stiff when your mouth moves lower than her pussy.",
"\"There?\"",
"The word is frightened and curious at the same time.",
"You kiss the back of her thigh first, giving her time to breathe.",
"Your tongue touches her asshole and her fingers twist against the surface beneath her.",
"\"Oh.\"",
"You lick her again, slow and careful around the tight little hole.",
"It is not her favorite kind of pleasure, but the intimacy of it makes her tremble.",
"\"That feels... strange.\"",
"You pause, and she looks back, embarrassed by wanting to know more.",
"\"Maybe slowly. Just slowly.\""
]
},
"first_ask_sex_success": {
"text": [
"You ask Iris for sex, and she looks at you like the sentence is both too much and exactly what she wanted.",
"\"With me?\"",
"You say yes.",
"Her face warms immediately.",
"\"Sorry. Stupid question.\"",
"Her hand finds yours, fingers uncertain.",
"\"I want that. I am nervous, but I want you.\"",
"Then, quieter:",
"\"Probably very much.\""
]
},
"first_beg_sex_success": {
"text": [
"You beg Iris for sex, and the need in your voice makes her stop looking away.",
"\"You really want me like that.\"",
"It is not a question.",
"She looks overwhelmed by the proof of it.",
"Her fingers tighten around your hand.",
"\"Okay.\"",
"The word comes out soft and shaky.",
"\"Please touch me before I talk myself into being scared.\""
]
},
"first_demand_sex_success": {
"text": [
"You demand sex from Iris, and the directness almost makes her retreat into herself.",
"Then she hears the want underneath it.",
"Her eyes drop to your mouth.",
"\"I do not know how to answer that without sounding ridiculous.\"",
"You step closer instead of making her perform confidence.",
"That helps.",
"Iris takes your hand and puts it at her waist.",
"\"I want you. I am just... bad at sounding brave.\""
]
},
"first_vaginal_intro": {
"text": [
"When your cock presses against Iris's wet slit for the first time, she looks down between you and forgets to breathe.",
"\"That is really happening.\"",
"You push forward slowly, the head of your cock spreading her pussy open.",
"Iris gasps and grips your shoulders.",
"Her cunt is wet and tight, stretching around the first inch while her body trembles around the feeling.",
"\"Oh. Fuck.\"",
"You slide deeper by degrees, and her inner walls clench hard around your cock.",
"Her eyes close, face flushed with want and disbelief.",
"\"I can feel all of you.\"",
"You keep going until you are buried inside her.",
"Iris moans softly and pulls you closer.",
"\"Please move. I think I need you to move.\""
]
},
"first_anal_intro": {
"text": [
"Iris's first anal is nervous and careful, more curiosity than confidence.",
"\"I do not know if I can.\"",
"You take your time with lube, touch, and quiet patience.",
"The head of your cock presses against her tight asshole.",
"Iris grips the fabric beneath her and hides her face.",
"\"Oh. That is a lot already.\"",
"You push in just enough for the first stretch to start.",
"Her breath catches, body tightening around the pressure.",
"\"Wait. Please wait.\"",
"You wait until she breathes again.",
"After a few seconds, she looks back with embarrassment and need tangled together.",
"\"Maybe a little more. Very little.\""
]
},
"first_position_missionary": {
"text": [
"Missionary feels safe to Iris because your face stays close and she can keep finding you when the feeling gets too big.",
"Your cock slides into her wet pussy while she watches you with nervous, open eyes.",
"The first thrust makes her grip your shoulders.",
"The second makes her eyes flutter shut.",
"\"I wanted to keep looking at you.\"",
"You slow just enough for her to open them again.",
"Her cunt tightens around you when your mouth nears hers.",
"\"Okay. Yes. Like this.\"",
"You fuck her close and steady, and every moan lands against your lips."
]
},
"first_position_cowgirl": {
"text": [
"Cowgirl makes Iris nervous because being on top feels too visible and too responsible.",
"She lowers herself onto your cock with both hands on your chest, cheeks red as her pussy takes you inch by inch.",
"\"I look ridiculous.\"",
"You tell her she does not.",
"She tries to believe you.",
"Her hips move once, uncertain, and the angle makes her gasp.",
"\"Oh.\"",
"She tries again, less scared this time because your hands stay steady on her hips.",
"\"Help me a little? I think I like it, but I do not know what I am doing.\""
]
},
"first_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl lets Iris hide her face, but it also turns the rest of her into something you can watch.",
"She sinks down onto your cock with her back turned, hands braced on your thighs, shoulders tense.",
"Her pussy takes you slowly, wet and tight, while her hair falls forward.",
"\"I can take more when I do not have to watch your face.\"",
"Then your hands settle on her hips and her breath catches.",
"She starts moving in small strokes, and her cunt tightens when she realizes your gaze is still on her.",
"\"But I know you are looking.\"",
"A tiny, embarrassed sound escapes her.",
"Every roll of her hips makes her more visible: the curve of her back, the trembling in her thighs, the way her body pulls your cock deeper even while her voice stays shy.",
"\"I think I like knowing.\"",
"She moves again, slower, like the watched part of it has become part of the pleasure."
]
},
"first_position_doggy": {
"text": [
"Doggy makes Iris nervous before it makes her needy.",
"She braces herself, glancing back once as your cock lines up with her wet pussy from behind.",
"\"This feels very exposed.\"",
"You push into her slowly, feeling her cunt stretch open around you.",
"Her fingers curl against the surface beneath her.",
"\"Oh. That is deep.\"",
"You hold her hips gently and start moving.",
"The next thrust pulls a louder moan from Iris. Her back arches and her fingers tighten against the surface beneath her.",
"\"Fuck. Okay. That feels... that feels good.\"",
"Her body answers the next thrust before her voice can."
]
},
"first_position_wall": {
"text": [
"Against the wall, Iris looks overwhelmed by how close everything is and how little room there is to disappear.",
"Her back touches the surface, your hands hold her, and your cock presses against her wet slit.",
"\"I feel like I cannot disappear like this.\"",
"You kiss her instead of answering.",
"Then you push inside her.",
"Iris gasps into your mouth, pussy stretching around your cock while her legs tighten around you.",
"The wall frames her in place: flushed face, parted lips, hands clinging to your shoulders, every reaction caught where you can see it.",
"You hold her steady and thrust again.",
"\"Oh. Fuck.\"",
"The wall keeps her there, close and unable to hide from the feeling.",
"Her cunt clenches around you when she realizes you can watch the moment hit her.",
"\"I am scared I like this.\"",
"You move deeper.",
"Her head tips back against the wall, throat exposed, hips answering before she can make the reaction smaller.",
"\"No, I do. I like it.\""
]
},
"first_anal_position_missionary": {
"text": [
"Missionary anal is the only version Iris can imagine trying first because your face stays close.",
"Your cock presses against her asshole while her hands hold your shoulders.",
"\"Slow. Please.\"",
"You push in carefully, feeling her tight hole resist and then start to open around the head.",
"Iris squeezes her eyes shut.",
"\"Fuck.\"",
"You stop with only part of your cock inside her ass, close enough for her breath to shake against your mouth.",
"She opens her eyes after a few seconds.",
"\"Okay. I am still here.\"",
"A tiny nod.",
"\"A little more.\""
]
},
"first_anal_position_cowgirl": {
"text": [
"Cowgirl anal makes Iris look like she is trying to be braver than she feels.",
"She lowers herself onto the head of your cock, tight asshole resisting the stretch immediately.",
"Her hands press against your chest.",
"\"I do not know if I can.\"",
"You stay still.",
"She breathes, then sinks a fraction lower.",
"The sound she makes is shaky and embarrassed.",
"\"Oh. That is... everywhere.\"",
"Her ass tightens around you and she leans forward, needing your hands on her.",
"\"Hold me. I can try a little more if you hold me.\""
]
},
"first_anal_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl anal lets Iris hide her face while you watch her ass take your cock, which makes her both safer and more embarrassed.",
"She lowers herself carefully, tight asshole stretching around the head while her back trembles.",
"\"Do not say what it looks like.\"",
"You stay quiet.",
"That helps.",
"She takes another inch and moans anyway.",
"Your view is filthy and impossible to miss: her ass spread, her hole stretched around you, her thighs shaking as she tries to keep going.",
"Iris whispers without looking back.",
"\"I know you can see everything.\"",
"Her voice breaks on the last word.",
"\"I think that is making it worse. Or better. I do not know.\""
]
},
"first_anal_position_doggy": {
"text": [
"Doggy anal leaves Iris with her face hidden and her ass exposed, which makes her shake before your cock is even inside.",
"You press the head to her tight asshole and wait until she nods.",
"\"Slow.\"",
"You push in carefully, opening her inch by inch.",
"Her body fights the stretch at first, then gives a little, and the moan that comes out of her sounds surprised by itself.",
"\"Oh. Oh, that is...\"",
"She cannot finish the sentence.",
"You hold still until she breathes.",
"Then her hips move back by a fraction.",
"\"Okay. A little more.\""
]
},
"first_anal_position_wall": {
"text": [
"Wall anal makes Iris feel held together and exposed at the same time.",
"You brace her against the wall, cock pressing against her tight asshole while her breath shakes near your neck.",
"\"I am nervous.\"",
"You go slowly.",
"The head starts to push in, stretching her open, and her hands slide against your shoulders for something to hold.",
"\"Fuck. Wait.\"",
"You wait.",
"She breathes until the panic thins into want.",
"\"Okay. I think I can.\"",
"You slide a little deeper, and Iris moans into your shoulder.",
"\"I can if you keep holding me.\""
]
},
"first_sex": {
"text": [
"The first time your cock sinks fully into Iris's pussy, she looks stunned by how real it feels and how clearly you can see it on her.",
"Her cunt is wet and tight around you, fluttering with every small movement while she grips your shoulders.",
"\"You are really inside me.\"",
"You thrust slowly, and her eyes go unfocused for a second.",
"The next moan comes out louder than she expects.",
"Her face burns.",
"\"Sorry. I did not know I would sound like that.\"",
"You move again, deeper, and she stops apologizing long enough to moan into your mouth.",
"Her hips start following yours, shy and needy.",
"The dreamy distance drops out of her face. What is left is wetness, broken breath, and the way her mouth opens when your cock presses deeper.",
"\"Please. More like that.\"",
"She says it like she is surprised to hear herself become so clear."
]
},
"first_anal": {
"text": [
"Iris's first anal is slow, nervous, and much dirtier than the careful setup prepared her for.",
"Your cock presses into her tight asshole by degrees, stretching her open while she shakes under you.",
"She keeps trying to describe what it feels like and losing the words halfway through.",
"\"It is... it is too much.\"",
"You stop.",
"Her hips push back by a tiny amount.",
"\"Not bad too much. Just... fuck.\"",
"You slide deeper and her hands grip the surface beneath her, ass tight around your cock while her voice falls apart into a moan.",
"\"Slowly. Please. I still want it.\""
]
},
"first_demand_anal_success": {
"text": [
"You ask Iris for anal directly enough that her face goes red all at once.",
"\"Oh. That is a very real sentence.\"",
"She looks down, then back up, flustered and trying to be honest.",
"\"I am scared.\"",
"You give her room to say no.",
"That is what lets her keep talking.",
"\"But I am curious. With you. Slowly.\"",
"Her hand finds yours.",
"\"Please do not make me pretend I am braver than I am.\""
]
},
"first_undress_top_off": {
"text": [
"Iris takes her top off with a nervous little laugh that turns into silence when the fabric is gone.",
"She looks down at herself, then at you, like she is waiting for the world to point out a mistake.",
"\"I feel like every part of me is easier to see now.\"",
"You tell her she looks good.",
"She tries to smile.",
"\"I want to believe you immediately. That is embarrassing.\"",
"Her hands hover near her chest, then fall away.",
"\"You can look. I am trying not to hide.\""
]
},
"first_undress_bra_off": {
"text": [
"Iris unhooks her bra and holds it in place for one extra second.",
"Then she lets it fall.",
"Her tits are bare, nipples already stiff from nerves and the way you are looking at her.",
"She inhales when your eyes drop to them.",
"\"I know they are not perfect.\"",
"You tell her you want to touch them.",
"That shuts her up more effectively than reassurance.",
"\"Oh. Then... yes.\"",
"Your hand cups her breast and she leans into it before she can decide whether that was too eager."
]
},
"first_undress_bottom_off": {
"text": [
"Iris slides her bottoms down and immediately looks embarrassed by how intimate the small movement feels.",
"She steps out of them, legs bare, thighs close together.",
"\"This is the part where I forget how to stand normally.\"",
"You reach for her hand instead of teasing her.",
"She takes it.",
"\"Thank you. I am being very brave and very stupid.\"",
"A small nervous smile.",
"\"Mostly brave, I hope.\""
]
},
"first_undress_panties_off": {
"text": [
"Iris's panties come off last, and she has to look away while she does it.",
"When they slide down, her wet pussy is exposed, slit glistening, thighs pressed together like she can still hide what you already saw.",
"\"I know.\"",
"She says it before you can say anything.",
"Her face is burning.",
"\"I got wet. I know. Please do not make me say it better than that.\"",
"Her thighs part by a tiny amount.",
"\"Unless you want me to. I might try.\""
]
},
"first_massage_undress_top_off": {
"text": [
"During the massage, Iris removes her top because your hands keep finding places the fabric blocks.",
"\"This is practical,\" she says, and immediately looks embarrassed by how unconvincing that sounds.",
"You return your hands to her bare shoulders.",
"Her skin is warm under your palms, and the first slow press makes her exhale.",
"\"Okay. That is... extremely practical.\"",
"Her voice softens.",
"\"Please keep touching me like that.\""
]
},
"first_massage_undress_bra_off": {
"text": [
"Iris takes her bra off during the massage with shaky fingers.",
"When she lies back down, her tits are bare against the air, nipples hard before your hands even get close.",
"You keep rubbing her back first.",
"That makes her relax more than rushing would have.",
"Then your thumbs pass near the side of her breast and she inhales sharply.",
"\"Sorry. Sensitive. Apparently.\"",
"You touch her more deliberately, and the apology dissolves into a soft sound."
]
},
"first_massage_undress_bottom_off": {
"text": [
"Iris removes her bottoms during the massage and tries to make it casual.",
"It does not work.",
"Her thighs keep shifting when your hands return to her lower back and hips.",
"You work the tense place above her ass, slow and warm, until she stops pretending not to enjoy it.",
"\"I keep thinking about where your hands could go,\" she admits, almost too quietly.",
"Her face turns toward the surface under her.",
"\"I wanted to say that without sounding desperate. I failed.\""
]
},
"first_massage_undress_panties_off": {
"text": [
"When Iris slips her panties off during the massage, everything goes quiet in a way that makes her blush worse.",
"Her pussy is wet, and she knows you can see it when she shifts onto her stomach again.",
"\"This is embarrassing.\"",
"You rest your hand on her thigh.",
"She opens her legs a little before you ask.",
"\"Okay. Touch me before I think about it too much.\"",
"Your fingers move closer to her wet slit, and her hips lift before contact.",
"\"Please.\""
]
},
"first_slide_inside_panties_public": {
"text": [
"Your fingers slide inside Iris's panties in public, and she forgets to breathe for a second.",
"Her pussy is wet under your hand, slick against your fingertips while she stares at nothing and tries to look normal.",
"\"Someone might see.\"",
"You rub her clit with two fingers, small and slow.",
"Iris's knees press together around your hand, but that only traps your fingers against her wet slit.",
"Her mouth opens on a silent gasp.",
"\"Oh my god,\" she whispers. \"I can feel myself getting wetter.\"",
"She leans closer by the smallest amount.",
"\"Just a little more. Then I need to breathe.\""
]
},
"first_deep_kiss": {
"text": [
"The first deep kiss with Iris starts with her trying to stay soft and careful.",
"Then your tongue touches hers and she forgets both plans.",
"Her hand grips your shirt, and the sound she makes is small enough to be embarrassing and real enough to change the kiss.",
"You kiss her deeper.",
"Iris presses closer, breath shaking against your mouth.",
"\"Again.\"",
"No art excuse. No nervous joke. Just that.",
"Then she blushes because even that felt too honest."
]
},
"first_invite_photoshoot": {
"text": [
"Iris walks to the wall, then moves nearer the window.",
"\"Here is better, right?\"",
"You say it is.",
"She puts her hands together in front of herself.",
"\"I do not know what to do with these.\"",
"You tell her to leave them there.",
"\"Okay.\"",
"She looks at the lens.",
"\"Take it before I move again.\""
]
},
"first_photo_hand_between_legs": {
"text": [
"Your hand reaches up Iris's thigh. She catches your wrist.",
"\"Wait.\"",
"You stop.",
"She presses her lips together, then puts your hand back.",
"\"Just give me a second.\"",
"Your fingers slide through her wet pussy. Her eyes close when you rub her clit.",
"Her hips nudge into your hand.",
"\"Okay. You can keep going.\"",
"You slide a finger inside her pussy and she holds your arm."
]
},
"first_invite_room": {
"text": [
"The first time Iris comes to your room, she looks around like she is trying to memorize it without being obvious.",
"\"I always look at rooms too much. Sorry.\"",
"She notices the bed, then immediately pretends she did not.",
"You ask if she is okay.",
"\"Yes. Nervous. But yes.\"",
"Her hand finds yours.",
"\"I want to be here. That is the scary part.\"",
"She smiles faintly.",
"\"Also the nice part.\""
]
},
"first_private_movie": {
"text": [
"The first private movie with Iris barely survives the opening scene.",
"She comments on the colors first, then the framing, then forgets the sentence when your shoulder touches hers.",
"\"I am watching the movie.\"",
"You glance at the paused screen.",
"Iris follows your eyes and turns red.",
"\"Okay, I am watching the idea of the movie.\"",
"Her hand slides into yours anyway.",
"\"I think I have lost the movie completely.\""
]
},
"first_invite_gallery": {
"text": [
"The first gallery invite with Iris makes her brighter before she remembers to be shy.",
"\"Yes. Sorry. That was too fast. Yes.\"",
"She moves through the room like every wall is quietly speaking to her.",
"At one piece, she forgets you are watching and leans closer, lips parted, eyes tracking the brushwork.",
"You say she looks happy.",
"Iris glances back, embarrassed but not hiding it.",
"\"I am,\" she says, then looks embarrassed by how quickly it came out.",
"She winces softly at herself.",
"\"I know. I am being strange about a simple thing.\"",
"Later, she stops in front of a portrait and goes quiet.",
"\"I like when someone looks seen instead of pretty.\"",
"Then she realizes how much that says about her and looks away.",
"\"That was probably too much information about me.\""
]
},
"first_invite_workout": {
"text": [
"The first workout with Iris is mostly her discovering that bodies are harder to pose from the inside.",
"\"I draw legs all the time. This should count for something.\"",
"It does not count for enough.",
"She gets tired, laughs at herself, then keeps going with shy little bursts of pride.",
"When you correct her stance gently, she looks down at her own body like it has become a difficult reference.",
"\"Okay. That actually helps.\"",
"A pause.",
"\"I like when you show me without making me feel stupid.\""
]
},
"first_public_handjob": {
"text": [
"The first time Iris strokes your cock in public, her hand shakes before it gets brave.",
"She keeps her eyes forward, fingers hidden under cover, palm closing around your shaft.",
"\"I cannot believe I am touching you here.\"",
"She strokes slowly, feeling you harden and twitch in her hand.",
"The reaction makes her breath catch.",
"Her thumb brushes the head of your cock, and she bites her lip so hard she almost looks angry at herself.",
"\"You are getting harder. I can feel it.\"",
"Her eyes flick around, then to a reflection that almost catches the hidden movement.",
"That near-image makes her squeeze a little tighter.",
"Her voice turns smaller.",
"\"That makes me want to keep going.\""
]
},
"first_footjob": {
"text": [
"The first footjob with Iris begins with her laughing because she is nervous, then stopping because your reaction is too real.",
"\"Wait, that actually works?\"",
"Her foot presses against your cock again, slower this time.",
"You react, and she watches with open fascination.",
"The next stroke is deliberate, sole dragging up the shaft while her face goes red.",
"\"That is... kind of beautiful in a really dirty way.\"",
"She says it, then covers her mouth.",
"\"Sorry. Not beautiful. I mean dirty. I mean both.\"",
"She tries again, encouraged by the way your cock responds."
]
},
"first_titfuck": {
"text": [
"The first time Iris lets you slide your cock between her tits, she looks embarrassed by how much she wants to see it.",
"\"I thought I understood the shape of this until it was your cock between my tits.\"",
"A pause.",
"\"That was not supposed to be out loud.\"",
"She presses her breasts together around your shaft, nipples stiff as your cock starts moving between them.",
"The first slide makes both of you react.",
"Iris looks down, transfixed by the way your cock moves between her tits.",
"\"Oh. It feels different when it is your cock.\"",
"She holds herself there, shy and intent, because your reaction makes her feel braver.",
"Every thrust gives her another detail to fail at ignoring: the pressure against her chest, the wet head pushing through, the way your face changes when her body becomes part of the image.",
"\"I should not be this interested in watching it.\"",
"She tightens her breasts around your cock anyway."
]
},
"first_climax_body": {
"text": [
"The first time you cum on Iris's body, she watches your cock until the first pulse hits her skin.",
"Hot cum streaks across her stomach, then her thigh, and her breath catches like the mess surprised her even though she asked to see it.",
"\"Oh.\"",
"Another spurt lands lower, and her hand hovers near it without touching.",
"She looks up at your face, flushed and wide-eyed.",
"\"I wanted to know what you looked like when that happened.\"",
"Then she looks down again, voice smaller.",
"\"And what it looked like on me.\"",
"The cum on her skin holds her attention in a way that feels almost artistic and too dirty to call artistic.",
"Her fingers finally touch the edge of the mess.",
"\"It looks different on me.\"",
"A nervous, aroused breath.",
"\"Sorry. I saw it before I knew how to feel it.\""
]
},
"first_climax_back": {
"text": [
"The first time you cum on Iris's ass, she looks back too late to hide how much she wants to see your face.",
"Your cock jerks, painting hot cum across her ass while her fingers clutch the surface beneath her.",
"She gasps when the first streak lands.",
"\"Oh my god.\"",
"You pulse again, leaving another wet line over her skin.",
"Iris stays still, breathing hard.",
"\"That feels dirtier than I pictured.\"",
"A shy, shaky laugh.",
"\"I pictured it, apparently.\""
]
},
"first_climax_boobs": {
"text": [
"The first time you cum on Iris's tits, she looks almost hypnotized by the buildup.",
"Your cock pulses, spilling cum over her breasts and across one stiff nipple.",
"Iris makes a small broken sound when the heat hits her skin.",
"\"Oh.\"",
"Another spurt lands between her tits, sliding down toward her stomach.",
"She watches it move, face red and fascinated.",
"\"I should not like seeing that this much.\"",
"She looks up at you, softer now.",
"\"But I do.\""
]
},
"first_climax_face": {
"text": [
"The first time you cum on Iris's face, she keeps looking up at you until the first streak hits her cheek.",
"She gasps, eyes blinking from shock, then stays there while your cock pulses again near her lips.",
"Hot cum marks her skin, messy and impossible to pretend is only visual.",
"For a second, Iris cannot speak.",
"Then she touches the edge of the mess with trembling fingers.",
"\"I can feel it on my face.\"",
"Her voice is tiny and aroused at the same time.",
"\"Fuck.\"",
"She looks embarrassed by how much that word meant.",
"She sees herself in your eyes, marked and flushed, and the distance she usually hides behind disappears.",
"White streaks, flushed skin, wet mouth, no distance left.",
"\"I look...\"",
"She stops before she can escape into description.",
"\"I wanted it. I know you can see that.\""
]
},
"first_climax_mouth": {
"text": [
"The first time Iris lets you cum in her mouth, she looks nervous right until your cock starts pulsing on her tongue.",
"You warn her, and she keeps her lips around you, fingers tight on your thigh.",
"The first spurt hits her tongue and her eyes go wide.",
"You cum into her mouth in thick pulses, and she tries to swallow before she has the rhythm for it.",
"A little slips to the corner of her lips.",
"She swallows again, throat working around your load, cheeks red and eyes wet.",
"When she pulls back, her mouth is messy and her breathing shakes.",
"\"I did it.\"",
"Then, quieter:",
"\"I wanted to. I think I wanted to more than I expected.\""
]
},
"first_climax_public_hand": {
"text": [
"The first time you cum in Iris's hand in public, she looks terrified of how much she wants it to happen.",
"Her fingers stroke your cock under cover, small and quick now, chasing the twitch she can feel in your shaft.",
"\"You are close. I can tell.\"",
"You cum into her palm, hot and messy, hidden only by fabric and luck.",
"Iris's eyes widen as your load spills into her hand.",
"She closes her fingers around it, breathing too fast.",
"\"Oh my god. It is in my hand.\"",
"Then she has to bite back a laugh because panic and arousal hit at the same time.",
"\"I should be more horrified. I am not.\""
]
},
"first_climax_inside_pussy": {
"text": [
"The first time you cum inside Iris's pussy, she realizes what is happening from the way your cock throbs deep in her.",
"\"Wait, are you...\"",
"Then the first pulse hits, and her question turns into a moan.",
"Your cock spills inside her cunt, filling her while her inner walls clench around every spurt.",
"Iris grips you hard, eyes wide, hips pressing up like her body wants every last twitch.",
"\"Oh fuck. I can feel it.\"",
"You keep pulsing inside her, cum filling her pussy until she is shaking under you.",
"\"That is inside me. You came inside me.\"",
"She sounds stunned, turned on, and almost embarrassed by how much she needed to say it.",
"Then she holds onto you like letting go too quickly would make the feeling less real."
]
},
"first_climax_inside_ass": {
"text": [
"The first time you cum inside Iris's ass, she is already shaking from the stretch.",
"Your cock is buried in her tight asshole when you warn her.",
"She makes a small sound that might be yes, then grips whatever is under her as the first pulse hits.",
"You fill her ass with hot cum, your cock jerking inside her while her body trembles around you.",
"Iris moans into the surface beneath her, too overwhelmed to make it pretty.",
"The second pulse makes her hips twitch back against you.",
"\"Oh my god. I felt that.\"",
"When it is over, she stays still, breathing hard, ass still tight around the last twitch of your cock.",
"\"I do not know what face I am making right now.\"",
"A breath.",
"\"Probably not a dignified one.\""
]
}
}
}
END_FIRST_TIME_DATA %//% FIRST_TIME_DATA
{
"girlId": "g3",
"girl": "Tessa Grant",
"notes": [],
"moments": {
"first_meeting": {
"text": [
"Tessa notices you before you decide whether approaching her is a good idea.",
"She moves through the space like she already knows which conversations are worth ending.",
"You hold her attention for half a second longer than most people seem to manage.",
"\"You are either about to waste my time or surprise me.\"",
"You ask which outcome she prefers.",
"Tessa's smile is small and not soft at all.",
"\"Surprise me. Obviously.\""
]
},
"first_phone_success": {
"text": [
"Tessa gives you her number without pretending it is an accident.",
"She enters it herself, checks the screen once, then hands the phone back.",
"\"Do not make me regret being efficient.\"",
"You ask what counts as regret.",
"\"If you text me, make it worth answering.\"",
"Her eyes flick over your face.",
"\"Send something worth answering.\""
]
},
"first_address_success": {
"text": [
"Tessa gives you her address with no cute hesitation, but the pause before she sends it is real.",
"\"This is not an invitation to appear whenever you feel bold.\"",
"You say you understand.",
"She watches you long enough to decide whether she believes it.",
"Then she sends it.",
"\"Good. I like confidence better when it can read a room.\""
]
},
"first_hug": {
"text": [
"The first hug with Tessa is brief because she makes it brief.",
"Then, halfway through, her hand settles at your back and stays there one second longer than the exit required.",
"You feel the small contradiction in it: clean posture, controlled breath, fingers that do not quite let go.",
"When she steps back, her expression is already composed again.",
"\"Acceptable.\"",
"A pause.",
"\"Do not look so pleased.\""
]
},
"first_kiss_cheek": {
"text": [
"You kiss Tessa on the cheek, and she lets the contact land without moving away.",
"Her eyes shift to you, cool at first, then a little sharper when she realizes you are watching for her reaction.",
"\"That was bold for something so small.\"",
"You ask if she disliked it.",
"\"No.\"",
"The answer comes too quickly to be indifferent.",
"\"But I noticed. Keep that in mind.\""
]
},
"first_dirty_whisper": {
"text": [
"You lean close enough that your voice belongs only to Tessa.",
"You tell her exactly what you want: her clothes coming off piece by piece, her mouth losing that polished edge, your hands on her hips while she tries to stay composed.",
"Tessa does not blush easily. This time, color still reaches her throat.",
"\"That was direct.\"",
"You say she would have hated vague.",
"Her eyes hold yours.",
"\"Correct.\"",
"A beat.",
"\"Say the last part again later. Slower.\""
]
},
"first_massage_start": {
"text": [
"Tessa accepts the first massage like she is evaluating a service she expects to be disappointed by.",
"You start at her shoulders, over her clothes, firm enough to be useful and slow enough not to look overeager.",
"For the first minute, she says nothing.",
"For Tessa, that small silence is better than praise.",
"Then her head tilts forward by a fraction.",
"\"There. Stay with that pressure.\"",
"You do, and the tension under your hands finally starts to give."
]
},
"first_massage_orgasm": {
"text": [
"Tessa's first massage orgasm starts when your hands reach places her composure cannot manage.",
"You work her shoulders until her breathing slows, then her back, then the tight line above her hips where every inch of her tries to stay disciplined.",
"When your hand slides between her legs, she catches your wrist for one second.",
"Her fingers stay there, feeling how steady your hand is.",
"Her panties are already damp when your fingers press against her pussy through the fabric.",
"\"Of course you noticed.\"",
"The complaint is weak. Her hips move into your hand before she can make it stronger.",
"You rub her clit through the fabric until her breath starts breaking, then slip beneath the edge and touch her bare, swollen clit directly.",
"Tessa's head drops forward.",
"\"Fuck.\"",
"You slide two fingers into her wet cunt and feel her clamp down immediately, tight and hot around you.",
"She tries to keep her posture. She loses it when your thumb finds her clit again.",
"Her thighs close around your hand, hips grinding in short, rough little pushes as if her body is furious at how well this works.",
"\"There. Fuck, there.\"",
"After that, words fail her. Her cunt clenches around your fingers, slick and hard, and the orgasm rips through her with a low moan she clearly meant to keep smaller.",
"She keeps pulsing around your fingers until the last wave leaves her bent forward, breath uneven, hand still locked around your wrist.",
"When she can speak again, the polish is not fully back.",
"\"Again later,\" she says, then laughs once under her breath. \"When my legs work.\""
]
},
"first_meal": {
"cookingVariants": {
"threshold": 45,
"low": [
"You cook for Tessa, and she looks at the plate like it has already failed an interview.",
"\"This should not work as well as it does.\"",
"She tries it anyway.",
"Her expression barely changes, but she takes a second bite.",
"\"Not good. Not insulting. Those are different categories.\"",
"That is probably the best review you were going to get."
],
"high": [
"You cook well enough that Tessa has to stop looking prepared to criticize it.",
"She takes one bite, then another, slower.",
"\"Good process. Clean timing. No panic hidden under seasoning.\"",
"You ask if that is praise.",
"\"Do not get greedy.\"",
"But she finishes the plate, and when she sets the fork down, her mouth is almost smiling.",
"\"You may cook again.\""
]
}
},
"first_kiss": {
"text": [
"The first real kiss with Tessa starts like a test and stops being one almost immediately.",
"Her mouth meets yours with controlled pressure, just enough to make clear she is not being taken by surprise.",
"Then your hand settles at her waist and her lips part under yours.",
"The kiss deepens. Her fingers curl into your shirt before she can make the gesture look deliberate.",
"When your tongue touches hers, her breath catches through her nose.",
"She pulls back only far enough to speak.",
"\"Better than expected.\"",
"Then she kisses you again before you can answer."
]
},
"first_handjob": {
"text": [
"The first time Tessa gives you her hand, she does it with the same composed precision she brings to everything else.",
"Her fingers close around your shaft with a firm, careful grip. She watches your face before moving her hand.",
"\"Say something if I am too rough.\"",
"You barely get the answer out before her stroke makes your breath shift.",
"Her eyes sharpen when she feels you throb in her palm.",
"\"Good. Then I know where the line is.\"",
"She keeps the rhythm controlled, but the way she watches you makes the control feel anything but distant."
]
},
"first_blowjob": {
"text": [
"The first time Tessa puts her mouth on your cock, she does not pretend she is doing it by accident or curiosity alone.",
"She kneels with deliberate grace, one hand wrapping around your shaft while she looks up at you like she expects you to remember this.",
"\"Hands visible.\"",
"Then she licks the head of your cock, slow and clean, watching your stomach tense.",
"Her lips close around you before she can turn the pause into another line.",
"She takes the first inches carefully, tongue pressing under the shaft, hand stroking what her mouth does not take yet.",
"Your cock throbs against her tongue, and her eyes sharpen with satisfaction.",
"Then she takes you deeper.",
"The sound is wet and obscene in the quiet between you.",
"Tessa pulls back just enough to breathe, lips slick, voice lower than before.",
"\"There. I felt that.\"",
"Then her mouth is back on your cock, less polished now, hungrier when you groan for her."
]
},
"first_cunnilingus": {
"text": [
"The first time you go down on Tessa, she starts with her composure intact and loses pieces of it quickly.",
"You settle between her thighs and kiss your way up until your mouth is close enough to feel the heat of her pussy.",
"She looks down at you, breathing carefully.",
"\"Show me.\"",
"You drag your tongue up her wet slit, and the command dies in her throat.",
"Her clit is already swollen when you find it, and the first slow circle makes her fingers tighten against the surface beneath her.",
"You lick her pussy until her thighs start to tense around your head.",
"\"There.\"",
"It comes out less like an order and more like she is trying not to moan.",
"You stay on her clit, tongue working steady pressure over the sensitive bud until her hips lift toward your mouth.",
"By the time she says your name, the polish is gone from it."
]
},
"first_facesitting": {
"text": [
"Tessa sits on your face for the first time with her thighs steady and her wet pussy close enough to take over your attention.",
"Her thighs frame your head, pussy wet and close, the heat of her already against your mouth before she lowers fully.",
"\"Tongue.\"",
"You give it to her.",
"The first lick makes her inhale sharply. The second makes her hips press down harder than she planned.",
"You eat her pussy with your tongue working her clit while her thighs tighten around your head.",
"Tessa's hand catches anything stable enough to keep the first moan from sounding like defeat.",
"It still sounds like one.",
"\"Fuck. Again.\""
]
},
"first_beg_facesit_success": {
"text": [
"You beg Tessa to sit on your face, and the blunt need in your voice clearly pleases her.",
"\"That is better.\"",
"She climbs over you without pretending to hesitate, thighs settling around your head, wet pussy hovering just above your mouth.",
"For one second she looks completely in control.",
"Then your tongue reaches her clit and her breath breaks.",
"She lowers herself harder onto your mouth, fingers gripping whatever she can reach.",
"\"There. Yes.\"",
"After that, she stops using full sentences for a while."
]
},
"first_69": {
"text": [
"Tessa treats sixty-nine like a position that should be efficient if both people know what they are doing.",
"That lasts until your mouth finds her pussy at the same time her lips close around your cock.",
"The first minute is controlled: her hand on your shaft, her mouth taking you in measured strokes, her hips steady above your face.",
"Then your tongue finds her clit and her mouth falters around you.",
"The sound she makes vibrates against your cock.",
"You keep licking, and her hips roll once against your mouth before she can make the movement look intentional.",
"She pulls off just long enough to breathe.",
"\"Oh. Fuck.\"",
"Then she takes your cock back into her mouth with noticeably less patience."
]
},
"first_rub_pussy_fabric_public": {
"text": [
"The first time you rub Tessa's pussy through fabric in public, she gives you a look that should stop you and does not.",
"Your fingers press against her slit through the fabric, small enough to hide, firm enough to matter.",
"Her posture stays perfect. The heat under your hand does not.",
"The cloth is damp before her face gives you anything useful.",
"\"You are enjoying how difficult this is to show.\"",
"You rub her slowly, and one controlled breath slips out wrong.",
"Her knees shift by a fraction, trapping your fingers more tightly against her wet pussy.",
"\"Fuck. Not yet.\""
]
},
"first_fingering": {
"text": [
"The first time your fingers slide into Tessa's pussy, she looks ready to stay composed out of spite.",
"Her cunt is too wet for that to last long.",
"You rub her clit first, slow and firm, until her breath starts catching between words she chooses not to say.",
"Then you push two fingers inside her, and her inner walls clamp down hard around you.",
"\"Fuck.\"",
"It is the first sound she does not manage to shape.",
"You curl your fingers and feel her hips jerk into your hand.",
"She catches your shoulder, nails pressing through your shirt.",
"\"There. Fuck, there.\"",
"You give her more, fingers fucking her wet cunt while your thumb works her clit, and Tessa's composure starts coming apart in sharp little breaths."
]
},
"first_analingus": {
"text": [
"The first time your mouth moves to Tessa's ass, she is quiet in a way that makes the air feel expensive.",
"She glances back once as your hands spread her.",
"No joke. No coyness.",
"You kiss the inside of her thigh, then lower until your tongue touches her asshole.",
"Her breath catches.",
"You lick her ass slowly, tongue circling the tight little hole while her fingers tighten against the surface beneath her.",
"\"Again.\"",
"The word is low and rough, not polished at all.",
"You do it again, and this time her hips lift back toward your mouth before she can hide the answer."
]
},
"first_ask_sex_success": {
"text": [
"You ask Tessa for sex, and she studies you for one clean second.",
"Then her eyes drop to your mouth.",
"\"Yes.\"",
"The word is simple enough to feel more dangerous than a speech.",
"She steps close and puts your hand on her waist herself.",
"\"Do not waste the answer.\""
]
},
"first_beg_sex_success": {
"text": [
"You beg Tessa for sex, and the need in it lands exactly where you meant it to.",
"Her expression sharpens, but her breath changes too.",
"\"Say it again.\"",
"You do, lower and rougher, telling her you want to be inside her.",
"Tessa's hand closes around your shirt and pulls you close.",
"\"Good.\"",
"Her mouth is almost against yours now.",
"\"Now stop begging and fuck me.\""
]
},
"first_demand_sex_success": {
"text": [
"You demand sex from Tessa, and she does not soften to make it easier for you.",
"She steps closer instead, eyes locked on yours.",
"\"Good. Say it like you mean me.\"",
"You repeat it, and this time the bluntness makes her breath catch.",
"Her hand slides to the back of your neck.",
"\"Good. Now prove you can do more than sound sure.\""
]
},
"first_vaginal_intro": {
"text": [
"When your cock presses against Tessa's wet slit for the first time, she looks down between you like she wants to watch the moment happen clearly.",
"Her pussy is slick against the head of your cock, ready enough that her composure looks almost insulting.",
"\"Slow first.\"",
"You push in by inches, feeling her cunt stretch around you, tight and hot and wetter with every breath she tries to control.",
"Halfway in, Tessa's hand grips your arm.",
"Not stopping you. Holding on.",
"When you sink deeper, her mouth opens on a low sound she does not quite swallow.",
"\"Fuck. I felt that.\""
]
},
"first_anal_intro": {
"text": [
"Tessa's first anal is not shy. It is serious.",
"You slick your cock and press the head against her asshole while her body holds perfectly still for the first second.",
"Then the pressure starts opening her.",
"Her fingers curl hard against the surface beneath her.",
"\"Slow.\"",
"You push in carefully, inch by inch, feeling her tight ass stretch around your cock.",
"The first real give pulls a sharp breath out of her.",
"Tessa presses her lips together, breathing hard through her nose.",
"\"More. Fuck... slow.\""
]
},
"first_position_missionary": {
"text": [
"Missionary puts your face too close to hers, and Tessa holds your gaze like she refuses to be the first one to look away.",
"Your cock slides into her pussy while her hands grip your shoulders, not pushing you away, not letting you drift either.",
"Every slow thrust makes her grip tighten and her breath come later.",
"When you push deeper, her cunt clenches around you and her eyes finally close.",
"\"No.\"",
"She opens them again, breathing harder.",
"\"I want to watch you when you feel that.\""
]
},
"first_position_cowgirl": {
"text": [
"Cowgirl puts Tessa above you, and the first slow roll of her hips tells you she knows exactly how good she looks there.",
"She lowers herself onto your cock with both hands on your chest, taking you in slow, controlled inches until her pussy is stretched around you.",
"For a few strokes, she keeps the pace measured.",
"Then the angle catches her clit just right and her rhythm breaks.",
"\"Oh.\"",
"Her hips move again, harder this time, chasing the same friction.",
"She rides you with a steady pace until the first rough breath breaks through.",
"\"There. I found it.\""
]
},
"first_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl gives Tessa the pleasure of making you watch her take your cock.",
"She sinks down with her back to you, ass and hips moving slowly as her pussy swallows you inch by inch.",
"You see her shoulders tense when you fill her, then loosen when she starts to ride.",
"At first, every movement is deliberate.",
"Then her pace turns rougher, breath catching when your cock hits deeper from below.",
"\"Look at me.\"",
"Her voice is lower now.",
"\"I want to feel you watching.\""
]
},
"first_position_doggy": {
"text": [
"Doggy makes Tessa give up eye contact, and that bothers her for about three seconds.",
"Then your cock pushes into her from behind and the angle makes her hands grip the surface beneath her.",
"Her pussy takes you tight and wet, hips held still until the first deep thrust forces a moan out of her.",
"\"Fuck.\"",
"You thrust again, and her back arches without permission from the polished part of her.",
"She looks back over her shoulder, breathing hard.",
"\"Again. That one.\""
]
},
"first_position_wall": {
"text": [
"Against the wall, Tessa has less room to arrange herself into something untouchable.",
"You hold her up, her legs tight around you, your cock pressing against her wet pussy before sliding inside.",
"The first deep thrust makes her fingers dig into your shoulders.",
"\"Good.\"",
"The second makes her head touch the wall behind her.",
"You fuck her there, close and hard enough that her breath keeps breaking against your mouth.",
"\"Don't drop me.\"",
"A rough breath slips out of her.",
"\"Fuck. Keep going.\""
]
},
"first_anal_position_missionary": {
"text": [
"First anal in missionary makes Tessa keep your face close while your cock stretches her ass open.",
"She watches you through the first pressure, jaw tight, fingers pressing into your shoulders.",
"You push in slowly, and her tight asshole gives by degrees around your cock.",
"\"Fuck.\"",
"The word comes out low and clipped.",
"You stop long enough for her to breathe, then slide a little deeper.",
"Her legs shift around you before she has words for what she wants.",
"\"Keep going. Slow.\""
]
},
"first_anal_position_cowgirl": {
"text": [
"Cowgirl anal gives Tessa exactly what she wants: control over the stretch and a clear view of what it does to you.",
"She lowers herself onto your cock slowly, tight asshole resisting before it starts to take you.",
"Her hands press into your chest, nails biting a little when she sinks another inch.",
"\"Stay still a second. I want to feel this.\"",
"That is the last clean command for a while.",
"The next inch makes her mouth fall open, and her ass clenches around you in a hard pulse.",
"\"Fuck.\"",
"She starts moving before she has a better word for it."
]
},
"first_anal_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl anal turns Tessa into a view she knows exactly how much you want.",
"Her back is to you, ass spread as she lowers herself onto your cock, tight hole stretching around the head.",
"She stops when the stretch starts to hurt, breathes through it, then lowers herself another inch.",
"You see the moment control turns into arousal in the movement of her hips.",
"Her ass settles lower, tight around your cock, and her shoulders tremble once.",
"\"You are staring.\"",
"She sounds pleased and wrecked at the same time.",
"\"Good.\""
]
},
"first_anal_position_doggy": {
"text": [
"Doggy anal makes Tessa's control physical instead of verbal.",
"She braces herself, hips raised, ass offered with no coyness at all.",
"Your cock presses against her asshole and starts opening her slowly.",
"Her fingers dig into the surface beneath her when the stretch turns real.",
"\"Slow.\"",
"You push deeper into her tight ass, and the next breath leaves her as a low moan.",
"Her hips push back before she says anything else.",
"\"More.\""
]
},
"first_anal_position_wall": {
"text": [
"Wall anal leaves Tessa shaking in a way she cannot fully turn into posture.",
"You brace her against the wall, cock pressing against her tight asshole from behind.",
"She tries to keep her breathing even until the head starts to push in.",
"Then her hands spread against the wall and her breath breaks.",
"\"Fuck.\"",
"You stretch her open slowly, inch by inch, holding her steady while her ass tightens around you.",
"When you finally slide deeper, she moans against the wall.",
"\"Fuck. Keep going.\""
]
},
"first_sex": {
"text": [
"The first time your cock sinks fully into Tessa's pussy, the clean version of her expression does not survive it.",
"Her cunt is tight and wet around you, inner walls clenching like her body has no interest in looking composed.",
"You thrust slowly at first, letting her feel every inch.",
"Tessa's hand grips your shoulder.",
"\"Deeper.\"",
"You give her deeper, and the sound she makes is too low to be elegant.",
"After that, her body starts answering before her mouth does: hips meeting yours, thighs tightening, breath breaking every time your cock fills her again."
]
},
"first_anal": {
"text": [
"Tessa's first anal is careful only until her body decides careful is not enough.",
"Your cock stretches her tight asshole open by slow degrees, each inch pulling a rougher breath out of her.",
"She grips the surface beneath her, jaw tight, eyes sharp until the fullness gets too deep for that look to hold.",
"\"Fuck.\"",
"You stop with your cock buried partway inside her ass, letting her adjust.",
"Then her hips push back on their own.",
"The movement is small, but it says more than a command would.",
"\"More.\""
]
},
"first_demand_anal_success": {
"text": [
"You demand anal from Tessa, and she goes still in a way that makes the air sharper.",
"She looks at you, then at your cock, then back up with heat under the composure.",
"\"Bold.\"",
"You say it again, and this time the bluntness hits lower.",
"Her thighs shift before she can hide the reaction.",
"\"Fine.\"",
"Her voice has lost some of its polish.",
"\"Show me how badly you want my ass.\""
]
},
"first_undress_top_off": {
"text": [
"Tessa takes her top off like she knows undressing is not just removing fabric.",
"She makes you watch the motion: the lift of her arms, the exposed line of her stomach, the pause before the garment comes free.",
"Her bra stays on. Her chest rises faster when she catches you looking at the skin she just exposed.",
"\"Eyes here.\"",
"You look where she wants you to look.",
"The small smile that follows is all control, but the flush at her throat is not."
]
},
"first_undress_bra_off": {
"text": [
"Tessa unhooks her bra slowly because she knows the wait matters.",
"When it falls, her tits are bare, nipples stiff under your stare.",
"She looks composed for about one breath too long.",
"Then your eyes settle on her breasts and her own breathing changes.",
"\"Yes. You can want them.\"",
"You step closer, and for the first time in the undressing, her hands are not perfectly still."
]
},
"first_undress_bottom_off": {
"text": [
"Tessa hooks her thumbs into the waistband and slides her bottoms down over her hips.",
"She steps out of them and stands there in her underwear, legs bare, posture perfect, eyes on your face.",
"\"You are allowed to look impressed.\"",
"You do.",
"Her smile sharpens.",
"\"Good. I dislike wasted effort.\""
]
},
"first_undress_panties_off": {
"text": [
"Tessa's panties come off last, and the confidence of the act is undercut by how wet she already is.",
"She slides them down slowly, exposing her pussy inch by inch until the damp fabric leaves her bare.",
"Her slit is glistening, her thighs held still by will more than calm.",
"You see the evidence before she can manage it into elegance.",
"\"Yes.\"",
"The word is quiet and almost annoyed.",
"\"You did that.\""
]
},
"first_massage_undress_top_off": {
"text": [
"During the massage, Tessa removes her top once it becomes inconvenient to pretend the touch is only functional.",
"The fabric comes off, and your hands return to bare skin.",
"Her shoulders stay squared for the first press.",
"Then your thumbs find the right tension and her posture gives by a fraction.",
"\"There.\"",
"The word is softer than she probably intended."
]
},
"first_massage_undress_bra_off": {
"text": [
"Tessa removes her bra during the massage with a look that dares you to make too much of it.",
"Her tits are bare when she settles again, nipples already hard before your hands get near them.",
"You keep massaging her back first.",
"That restraint lands better than a compliment.",
"Then your thumb brushes the side of her breast and her breath catches.",
"\"I felt that.\"",
"A pause.",
"\"Again.\""
]
},
"first_massage_undress_bottom_off": {
"text": [
"Tessa removes her bottoms during the massage without losing the controlled pace of it.",
"Then your hands return to her lower back and hips, and the control starts costing more.",
"Your thumbs work the tense line above her ass while her thighs shift against the surface beneath her.",
"She says nothing at first.",
"Then one knee moves outward by a small, deliberate inch.",
"\"Continue.\""
]
},
"first_massage_undress_panties_off": {
"text": [
"When Tessa takes off her panties during the massage, she makes the choice look clean until the wet fabric gives her away.",
"Her pussy is bare when your hands return to her hips, slick enough that both of you know where the massage is going.",
"For once, she does not dress the moment up with a line.",
"She parts her thighs slightly.",
"Your hands settle on her hips, and her breath tells you where the massage is going.",
"Your hand moves between her legs, and her breath catches before your fingers even touch her clit."
]
},
"first_slide_inside_panties_public": {
"text": [
"Your fingers slide inside Tessa's panties in public, and her expression barely changes.",
"Her body is less convincing.",
"Her pussy is already wet under your fingertips, clit swollen enough to find immediately.",
"You rub her with small, hidden strokes, and her breath leaves a fraction too slowly.",
"\"You are testing my face.\"",
"You keep touching her anyway.",
"The next stroke makes her thighs tighten around your hand.",
"\"Good. Keep it difficult.\""
]
},
"first_deep_kiss": {
"text": [
"The first deep kiss with Tessa begins with her letting you think you are setting the pace.",
"Then her mouth opens under yours and her hand slides to the back of your neck.",
"She kisses you harder, tongue meeting yours with clean intent until your breath changes first.",
"That seems to please her.",
"Then you press closer and her own breath catches against your mouth.",
"For a second, the kiss stops being neat.",
"\"Again,\" she says, low and immediate."
]
},
"first_invite_photoshoot": {
"text": [
"Tessa puts her bag on the chair and looks around the room.",
"\"Where do you want me?\"",
"You point to the wall.",
"\"Full body?\"",
"You say yes.",
"She takes off her jacket, folds it over the chair, and stands in front of the wall.",
"\"All right. Take the picture.\""
]
},
"first_photo_hand_between_legs": {
"text": [
"You put the camera down beside Tessa. Your hand goes between her legs.",
"She glances at it.",
"\"That's not part of the shoot.\"",
"\"No.\"",
"She takes your wrist and puts your hand over her pussy.",
"\"Then stop hovering.\"",
"You rub her clit until she leans back against the wall.",
"She pulls your hand lower. \"One finger. Not two.\"",
"You slide a finger inside her pussy.",
"\"Good. Now move it.\""
]
},
"first_invite_room": {
"text": [
"The first time Tessa agrees to come to your room, she looks around once and takes in everything you hoped she would not notice.",
"\"Better than expected.\"",
"You ask if that is praise.",
"\"It is an opening score. Do not ruin the trend.\"",
"She steps closer, eyes moving briefly to the bed and then back to you.",
"\"Now. What did you invite me here to do?\""
]
},
"first_private_movie": {
"text": [
"The first private movie with Tessa keeps pretending to be about the movie until her knee touches yours and both of you stop humoring the lie.",
"She sits close, composed, one leg crossed, eyes on the screen while your hand rests near hers.",
"\"If this is the plan, you are taking your time.\"",
"You move closer.",
"Her fingers touch yours before you reach for her properly.",
"\"Better.\"",
"The movie keeps playing, useful mostly because it gives her something to ignore while she looks at your mouth."
]
},
"first_invite_gallery": {
"text": [
"The first gallery invite with Tessa becomes less about art and more about watching her judge a room without raising her voice.",
"\"Half of this is expensive hesitation.\"",
"You ask if she likes anything.",
"She stops in front of a piece that dominates the wall without looking loud.",
"\"That.\"",
"A small smile appears.",
"\"It knows what it is doing. I respect that.\""
]
},
"first_invite_workout": {
"text": [
"The first workout with Tessa is not playful for the first ten minutes.",
"She treats the warmup like an audit and your form like a report with possible errors.",
"Then effort starts doing what charm could not.",
"Her breathing gets heavier, her skin warms, and the competitive edge turns more honest.",
"\"Not terrible.\"",
"You ask if that means good.",
"She wipes sweat from her throat and looks at you.",
"\"It means continue.\""
]
},
"first_public_handjob": {
"text": [
"The first time Tessa wraps her hand around your cock in public, she makes the risk look like manners.",
"Her fingers move under cover, palm closing around your shaft with slow, hidden confidence.",
"Your reaction gives you away faster than hers does.",
"\"Quiet.\"",
"She strokes you with just enough pressure to make quiet difficult, thumb passing over the head of your cock whenever you start to settle.",
"Her face stays composed. Her hand does not.",
"\"I can feel every twitch.\""
]
},
"first_footjob": {
"text": [
"The first footjob with Tessa starts like something she intends to mock and ends before the mockery can survive your reaction.",
"Her foot presses against your cock, slow at first, testing the pressure through your breath.",
"\"Interesting.\"",
"She drags her sole along your shaft again, firmer this time, and watches your body answer.",
"The control on her face sharpens into curiosity.",
"\"That works on you more than I expected.\"",
"Her next stroke is not an experiment anymore."
]
},
"first_titfuck": {
"text": [
"The first time Tessa lets you slide your cock between her tits, she knows exactly what the sight is doing to you.",
"She presses her breasts around your shaft, nipples stiff, skin warm, eyes fixed on your reaction as you start moving.",
"Your cock slides between her tits in slow, slick strokes.",
"For the first few seconds, she looks pleased with how badly you want it.",
"Then the friction brushes her nipple and her breath catches too.",
"\"Oh.\"",
"Her hands tighten around her breasts.",
"\"There. Fuck, I felt that.\""
]
},
"first_climax_body": {
"text": [
"The first time you cum on Tessa's body, she watches the buildup without blinking.",
"Your cock jerks in your hand, spilling hot cum across her stomach and thigh.",
"Her composure holds for the first streak, then her breathing changes when the second lands lower.",
"\"Good.\"",
"It is barely a word, almost swallowed.",
"You pulse again, marking her skin while she looks down at the mess.",
"\"That is a better expression on you.\""
]
},
"first_climax_back": {
"text": [
"The first time you cum on Tessa's ass, she looks back over her shoulder at the exact wrong moment for her composure.",
"Your cock pulses, streaking hot cum over her ass while her fingers press into the surface beneath her.",
"Another spurt lands across her skin, and her breath catches before she can hide it.",
"\"You wanted that badly.\"",
"Her voice is steady. Her thighs are not.",
"\"I felt you shake.\""
]
},
"first_climax_boobs": {
"text": [
"The first time you cum on Tessa's tits, she looks almost too composed while waiting for it.",
"Then your cock jerks, spilling over her breasts and across one stiff nipple.",
"Her breath catches, small but real.",
"Another pulse streaks between her tits, sliding down her skin.",
"Tessa looks down at the mess, then back at you.",
"\"I see why you wanted that.\"",
"A pause, less polished.",
"\"I might have wanted it too.\""
]
},
"first_climax_face": {
"text": [
"The first time you cum on Tessa's face, she holds your gaze until your cock starts pulsing.",
"The first streak lands across her cheek, hot and messy enough to break the clean image of her for one breath.",
"Another shot catches near her lips.",
"Her eyes close for half a second, then open sharper and more aroused than before.",
"She wipes a little cum from the corner of her mouth with her thumb.",
"\"That was bold.\"",
"Her voice drops.",
"\"Do not waste the look on your face.\""
]
},
"first_climax_mouth": {
"text": [
"The first time Tessa lets you cum in her mouth, she commits to it with the same intensity she brings to everything else.",
"Your cock is deep on her tongue when you warn her.",
"She does not pull away.",
"The first spurt hits her mouth and her fingers tighten around your thigh.",
"You cum in thick pulses, and Tessa swallows around your cock with a rough, controlled effort that starts losing its control by the second pulse.",
"When she pulls back, her lips are wet and her breathing is heavier than she wants it to be.",
"\"Good.\"",
"A pause.",
"\"I wanted to taste what I did to you.\""
]
},
"first_climax_public_hand": {
"text": [
"The first time you cum in Tessa's hand in public, she makes it look like nothing is happening until your control breaks.",
"Her fingers tighten around your cock under cover, stroking with small, brutal efficiency.",
"\"Quiet.\"",
"You cum into her palm, hot and hidden, while her face stays almost perfect.",
"Almost.",
"Her lips part when your cock pulses again and fills her hand with more mess.",
"\"I can feel it.\"",
"The words are lower than usual, and not nearly as composed."
]
},
"first_climax_inside_pussy": {
"text": [
"The first time you cum inside Tessa's pussy, she knows before you finish warning her.",
"Her legs tighten around you, and her hand locks behind your neck.",
"\"Inside.\"",
"You bury yourself deep and pulse into her cunt, filling her while her inner walls clench hard around every spurt.",
"Tessa gasps against your mouth, composure gone for the first hot rush of cum inside her.",
"Your cock keeps twitching, pumping more into her wet pussy while her hips hold you there.",
"\"Fuck.\"",
"Her voice is rough, almost startled.",
"\"Stay in.\""
]
},
"first_climax_inside_ass": {
"text": [
"The first time you cum inside Tessa's ass, she is already stretched tight and breathing hard around the fullness of you.",
"You warn her while your cock is buried deep in her tight asshole.",
"Her answer is not polished. It is a harsh little inhale and her hips pressing back.",
"You pulse inside her, filling her ass with hot cum while her fingers claw at the surface beneath her.",
"The second spurt makes her moan, low and almost angry with how good it feels.",
"Her ass clenches around your cock until the last twitch fades.",
"For a moment, Tessa says nothing at all.",
"Then, breathless:",
"\"Fuck.\"",
"A small, broken laugh follows.",
"\"Not now. But... again.\""
]
}
}
}
END_FIRST_TIME_DATA %//% FIRST_TIME_DATA
{
"girlId": "g4",
"girl": "Leah Cross",
"notes": [],
"moments": {
"first_meeting": {
"text": [
"You meet Leah while she is fixing a problem someone else clearly walked away from.",
"She gives you one look, then points at the thing nearest your hand.",
"\"If you can stand there, you can help.\"",
"You help.",
"That earns you half a nod and exactly no applause.",
"\"Good. You understood the assignment without needing a speech.\"",
"She wipes her hands and studies you again.",
"\"I am Leah. If you want something, talk straight.\""
]
},
"first_phone_success": {
"text": [
"Leah gives you her number after watching you show up enough times that the request no longer sounds like a line.",
"\"Text if you are late or hurt. If you send gym selfies, they better have a reason.\"",
"You ask if she gives everyone that warning.",
"\"Only the ones I might actually answer.\"",
"She sends the number and pockets her phone.",
"\"Keep it useful. Useful can be fun. Eventually.\""
]
},
"first_address_success": {
"text": [
"Leah gives you her address like it is practical, then looks away just long enough to prove it is not.",
"\"Do not show up sweaty from the gym unless you plan to shower first.\"",
"You say that sounds like permission.",
"She looks at you for a second, then laughs under her breath.",
"\"It is an address. Earn the permission when you get there.\"",
"Then, softer, almost hidden:",
"\"But yeah. I want you to have it.\""
]
},
"first_hug": {
"text": [
"The first hug with Leah feels like getting past a locked door without hearing it open.",
"She steps in like it is no big deal, arms strong around your back, body warm from the day.",
"For one second it is all muscle and posture.",
"Then her grip changes.",
"Not softer exactly. More honest.",
"\"There,\" she mutters against your shoulder. \"You can stop looking proud now.\"",
"She stays for one more breath before stepping back.",
"\"Do not get sentimental. It was one hug.\""
]
},
"first_kiss_cheek": {
"text": [
"You kiss Leah on the cheek before she has time to make it into a challenge.",
"She stops, towel in one hand, eyes narrowing like she is deciding whether to give you grief for it.",
"\"Bold.\"",
"You ask if bold is bad.",
"Her mouth twitches.",
"\"Depends what you can back it up with.\"",
"Then she turns away before the small smile can become obvious."
]
},
"first_dirty_whisper": {
"text": [
"You lean in and tell Leah what you want: your hands on her hips, her back against a wall, her trying to keep her voice down while you make that difficult.",
"Leah goes still for half a second.",
"Then she looks at you like she is annoyed by how cleanly the picture landed.",
"\"You have been thinking about that.\"",
"You say yes.",
"Her eyes drop to your mouth.",
"\"Good. Think harder. Then maybe do something about it later.\""
]
},
"first_massage_start": {
"text": [
"Leah accepts the massage like someone accepting maintenance, not indulgence.",
"\"Shoulder first. The bad one.\"",
"You start carefully, thumbs working around the old tension instead of attacking it.",
"She watches your hands for a while.",
"\"Not bad.\"",
"Her shoulders drop another fraction.",
"When your pressure finds the right place, her jaw loosens and she exhales through her nose.",
"\"Yeah. There. Stay around that spot.\""
]
},
"first_massage_orgasm": {
"text": [
"Leah's first massage orgasm starts with her shoulder and ends with her legs spread wider than she planned.",
"You work the old tightness down slowly, from shoulder to back to hips, and Leah gets quieter the better your hands become.",
"The first real softness comes out of her as a rough breath, not a word.",
"Your hand slides lower. She looks down at it, jaw tight, then lets her thighs shift apart.",
"By the time your fingers press between her legs, her panties are damp and warm against her pussy.",
"You rub her through the fabric, slow and firm, until her hips push into your hand before she can hide it.",
"\"Fuck.\"",
"Your fingers slip under and find her clit swollen and slick.",
"Leah grips the edge of the seat, shoulders tense, breath turning rough as you rub her clit in tight circles.",
"When you slide two fingers into her wet cunt, her thighs clamp around your wrist.",
"The first few strokes drag low sounds out of her. Then your thumb finds her clit again and the rest of her composure breaks.",
"Her hips jerk against your hand, pussy clenching hard around your fingers, and the moan that comes out of her is rough enough to sound angry.",
"\"Don't stop.\"",
"It comes out broken enough to stop sounding like an order.",
"You keep fingering her through the orgasm until the last pulse leaves her breathing hard, hand still locked around your forearm.",
"She looks down at your hand between her legs and laughs once, rough and embarrassed.",
"\"That shoulder excuse is officially dead.\""
]
},
"first_meal": {
"cookingVariants": {
"threshold": 45,
"low": [
"You cook for Leah, and she inspects the plate like it might be part of a meal plan she did not approve.",
"\"This is either dinner or a cry for help.\"",
"She eats anyway.",
"A second bite follows, which is more forgiving than the comment.",
"\"Needs protein. Less sadness. But I would eat it again.\"",
"Then she points the fork at you.",
"\"Next time, we fix it before it reaches the plate.\""
],
"high": [
"You cook for Leah well enough that she stops making jokes after the first bite.",
"\"Okay. That actually works.\"",
"She eats like someone who respects fuel but still likes flavor when it shows up properly.",
"You talk protein, timing, and why food that makes you miserable is bad training disguised as discipline.",
"Leah points her fork at you.",
"\"That part I agree with. If the plan tastes like punishment, people quit.\"",
"She takes another bite.",
"\"You can cook for me again.\""
]
}
},
"first_kiss": {
"text": [
"The first real kiss with Leah does not start gentle for long.",
"She lets your mouth meet hers, tests the pressure, then kisses back harder than you expected.",
"Her hand catches the front of your shirt.",
"The kiss lands warm, firm, and unmistakably Leah.",
"When your tongue brushes hers, she makes a low sound and pulls you closer instead of pretending she did not.",
"\"Good,\" she says against your mouth.",
"Then she kisses you again before either of you can turn it into a conversation."
]
},
"first_handjob": {
"text": [
"The first time Leah agrees to stroke you, she treats it like a physical challenge she intends to understand quickly.",
"Her hand closes around your cock with a grip that is careful, then immediately more confident.",
"\"Tell me if the pressure is wrong.\"",
"You react before you answer, and that gets a short, focused look from her.",
"She adjusts her wrist, testing the angle until your hips give her the truth.",
"\"There. That works.\"",
"The next strokes are steadier, her attention locked on how your body answers her hand."
]
},
"first_blowjob": {
"text": [
"Leah looks at your cock, then up at your face, unimpressed by any attempt to act casual.",
"\"You want my mouth?\"",
"You say yes.",
"She holds your gaze for one more second, then wraps one hand around your shaft.",
"\"Good.\"",
"She strokes you twice before licking the head of your cock.",
"The taste makes her eyes flick up.",
"Her lips close around you, warm and firm, taking the first inches without turning it into a show.",
"She works you with mouth and hand together, practical at first, then hungrier when your hips twitch.",
"When you groan, she pulls back just enough to breathe, lips wet.",
"\"Yeah. There.\"",
"Then she takes your cock back into her mouth deeper than before, and the next sound from you makes her fingers tighten around your shaft."
]
},
"first_cunnilingus": {
"text": [
"Leah watches you at first, guarded, until your tongue makes the guard less useful.",
"Her legs part anyway.",
"You kiss the inside of her thigh, then drag your tongue up her wet slit.",
"The first real lick makes her stomach tighten.",
"\"Fuck.\"",
"You spread her folds with your tongue and find her clit.",
"She grips the edge under her hand, jaw working like she hates how good it feels.",
"You keep licking her pussy, slow and steady, until her hips start meeting your mouth.",
"\"There. Keep... yeah. Like that.\"",
"Her voice gets rougher, less certain, and that is when you know it is working."
]
},
"first_facesitting": {
"text": [
"Leah sitting on your face feels less like a pose and more like a dare she decided to accept.",
"She gives you one quick look before her thighs settle around your head and her wet pussy lowers to your mouth.",
"\"Tap if you need air.\"",
"Then there is no more warning, just her heat against your lips and the first taste of her on your tongue.",
"The first lick makes her hand grab for something stable.",
"\"Fuck.\"",
"You eat her pussy with your tongue working her clit, and her hips start moving before she can pretend she is only holding still.",
"Leah's thighs tighten around your ears.",
"She starts to say something, loses it, and grinds down harder instead.",
"\"Yeah. Like that.\"",
"The last words come out rough, closer to a moan than an instruction."
]
},
"first_beg_facesit_success": {
"text": [
"You beg Leah to sit on your face, and she stares at you like she is trying not to enjoy the sound of it.",
"\"You really want to be under me that badly?\"",
"You say yes.",
"Her expression changes.",
"\"Good answer.\"",
"She climbs over you and lowers her wet pussy to your mouth before the moment can get too cute.",
"Your tongue finds her clit and her hips drop harder than she meant them to.",
"\"Fuck. Okay. Earned some enthusiasm there.\""
]
},
"first_69": {
"text": [
"Leah agrees to sixty-nine like she expects it to be awkward and is willing to be proven wrong.",
"\"This better not turn into both of us doing a bad job at once.\"",
"Then her mouth is near your cock and her pussy is over your face, and the joke loses priority fast.",
"You lick her wet slit while her hand wraps around your shaft.",
"Her lips close around the head of your cock, and your tongue finds her clit at almost the same time.",
"Leah moans around you, surprised by it.",
"She pulls off to breathe, lips wet, eyes unfocused for half a second.",
"\"Fuck.\"",
"Then she goes back down before she can turn it into another comment."
]
},
"first_rub_pussy_fabric_public": {
"text": [
"The first time you rub Leah's pussy through fabric in public, she gives you one warning look and then does not move away.",
"\"You are pushing your luck.\"",
"Your fingers press against her slit through the fabric, small and firm.",
"Her posture barely changes, but the heat under your hand is immediate.",
"You rub her slowly, feeling the cloth grow damp against her pussy.",
"Leah's jaw tightens.",
"\"Fuck.\"",
"Her knees shift, trapping your hand for half a second.",
"\"Keep it small.\""
]
},
"first_fingering": {
"text": [
"The first time your fingers slide into Leah's pussy, she is already wet enough that the act makes both of you quiet.",
"You rub her clit first, and her thighs tense around your hand.",
"Her breath catches low in her chest.",
"Your first finger pushes into her cunt, tight and hot, and Leah grips your shoulder hard.",
"You start moving slowly, thumb still working her clit.",
"Her hips follow your hand after the third stroke.",
"\"Fuck.\"",
"You add a second finger and feel her pussy clench around you.",
"Leah exhales through her teeth, then laughs once because she cannot make it sound casual.",
"The laugh breaks into a moan when you curl your fingers deeper.",
"\"Yeah. That works.\""
]
},
"first_analingus": {
"text": [
"Leah is not naturally shy, but your mouth moving toward her ass makes her look back fast.",
"\"That is not usually first on my list.\"",
"You kiss the back of her thigh, then lower with enough patience that she stays where she is.",
"Your tongue touches her asshole and her whole body tightens.",
"\"Fuck.\"",
"You lick her again, slow, circling the tight little hole while her fingers grip the surface beneath her.",
"She does not pretend it is nothing.",
"She also does not give you much more than that.",
"\"Okay. Careful. That is... a lot.\""
]
},
"first_ask_sex_success": {
"text": [
"You ask Leah for sex, and she holds your gaze without blinking away from it.",
"\"Yeah.\"",
"Plain. Direct. No performance.",
"Then she steps closer and puts your hand on her hip.",
"\"You want me, say it again when you touch me.\"",
"You do.",
"Her mouth twitches.",
"\"Better.\""
]
},
"first_beg_sex_success": {
"text": [
"You beg Leah for sex, and she looks more affected by it than she clearly planned to.",
"\"Damn. You are not subtle.\"",
"You say you do not want to be.",
"That lands.",
"She grabs the front of your shirt and pulls you closer.",
"\"Good. I hate fake calm.\"",
"Her voice drops.",
"\"Come here.\""
]
},
"first_demand_sex_success": {
"text": [
"You demand sex from Leah, and she gives you a look that would flatten weaker confidence.",
"You hold it.",
"That matters.",
"\"There you are.\"",
"She steps closer, chest almost against yours.",
"\"If you are going to talk like that, use your hands like you mean it.\"",
"She puts your hands on her hips herself."
]
},
"first_vaginal_intro": {
"text": [
"When your cock presses against Leah's wet slit for the first time, she stops joking completely.",
"Her hands grip your shoulders.",
"You push in by inches, feeling her pussy stretch around you, hot and slick and tighter than her confidence made it look.",
"Halfway in, her breath breaks.",
"\"Fuck.\"",
"You keep going until your cock is buried inside her.",
"Leah pulls you closer with both hands.",
"For a second she just breathes against your mouth, hips shifting like her body is asking before she does.",
"\"Move.\"",
"It comes out rough, stripped down to want."
]
},
"first_anal_intro": {
"text": [
"Leah's first anal is cautious because she knows her body and does not pretend otherwise.",
"\"A lot of lube. Slow. No hero shit.\"",
"You slick your cock and press the head against her tight asshole.",
"Her fingers grip the surface beneath her when the pressure starts opening her.",
"You push in carefully, giving her every inch by degrees.",
"\"Fuck.\"",
"Her voice is rough, more surprised than theatrical.",
"Her tight ass resists around the head of your cock, then gives just enough for the stretch to turn real.",
"You hold still until she breathes again.",
"Leah swallows, hips trembling once.",
"\"A little more.\""
]
},
"first_position_missionary": {
"text": [
"Missionary with Leah is closer than she expected to like.",
"Your cock slides into her pussy while her arms lock around your back.",
"She looks at you like she is daring the position to turn soft.",
"Then you thrust and her expression breaks for half a second.",
"\"Fuck. Okay.\"",
"Her legs tighten around you.",
"\"Closer. If we are doing this one, do it close.\""
]
},
"first_position_cowgirl": {
"text": [
"Cowgirl makes Leah look impatient with the amount of balance involved.",
"She lowers herself onto your cock anyway, hands on your chest, thighs tense as her pussy takes you.",
"\"If I look awkward, shut up.\"",
"Then she sinks lower and stops caring what she looks like.",
"Her hips move once, testing the angle.",
"\"Oh.\"",
"A second roll makes her grip your chest harder.",
"\"Okay. That part works.\""
]
},
"first_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl is not Leah's usual favorite, but she tries it with the stubbornness of someone who refuses to be bad at a position.",
"She sinks down onto your cock with her back to you, ass settling against your hips.",
"The first few movements are careful.",
"Then your hands find her hips and help the rhythm.",
"\"Yeah. That helps.\"",
"Her pussy tightens around you when the angle catches right.",
"\"There. Keep that pace.\""
]
},
"first_position_doggy": {
"text": [
"Doggy suits Leah better than she admits at first.",
"She braces herself, looks back once, then lets your cock press into her wet pussy from behind.",
"\"Start steady.\"",
"You push in, and her fingers curl hard against the surface beneath her.",
"The angle makes the first deep thrust rougher than expected.",
"\"Fuck.\"",
"Her hips push back before she says anything else.",
"\"Again. Like that.\""
]
},
"first_position_wall": {
"text": [
"The first time you press Leah to the wall, her legs come up fast enough to tell you this was already her favorite.",
"You press her back to the wall, hands on her hips, her legs coming up around you with a strength that pulls you closer.",
"She grips your shoulders as your cock lines up with her wet pussy.",
"You push in and her head hits the wall lightly, mouth opening on a hard breath.",
"\"Fuck. There.\"",
"You thrust again and her body tightens around you, pinned between you and the wall.",
"Her hands drag down your back, holding you close instead of explaining what she wants.",
"When you drive into her harder, her moan comes out rough and pleased.",
"\"Yeah. Like that.\""
]
},
"first_anal_position_missionary": {
"text": [
"Missionary anal makes Leah keep her face close to yours while she deals with the stretch.",
"You press the head of your cock against her tight asshole and start slow.",
"Her hands grip your arms.",
"\"Easy.\"",
"You push in by degrees, feeling her ass open around you while she breathes through the pressure.",
"When you get deeper, her voice roughens.",
"\"Fuck. That is a lot.\"",
"She pulls you closer anyway."
]
},
"first_anal_position_cowgirl": {
"text": [
"Cowgirl anal is Leah taking the difficult way because she wants control over the stretch.",
"She lowers herself onto your cock slowly, jaw tight, hands on your chest.",
"Her ass resists, then starts to take you.",
"\"Damn.\"",
"She stops halfway down, breathing hard.",
"\"Okay. That is not casual.\"",
"Then she takes another inch because apparently saying that did not mean quitting."
]
},
"first_anal_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl anal makes Leah quiet in a way she usually is not.",
"She lowers herself onto your cock with her back to you, ass stretching slowly around the head.",
"Her shoulders tense when the pressure gets real.",
"\"Slow.\"",
"You stay still while she takes more of you by choice.",
"When she finally sinks lower, she exhales hard.",
"\"Fuck. I felt that everywhere.\""
]
},
"first_anal_position_doggy": {
"text": [
"Doggy anal makes Leah brace herself like she is preparing for something serious.",
"You slick your cock and press into her tight asshole from behind.",
"\"Careful first.\"",
"You push in slowly, inch by inch, while her fingers grip the surface beneath her.",
"Her ass opens around you with tight, hot resistance.",
"\"Fuck.\"",
"Her hips move back by a fraction.",
"\"Okay. A little more.\""
]
},
"first_anal_position_wall": {
"text": [
"Wall anal is intense even for Leah.",
"You hold her against the wall with your cock pressed to her tight asshole, her breath already rough before you push in.",
"\"Steady.\"",
"You start slow, stretching her open while her legs tighten around you.",
"The first deeper slide makes her swear into your shoulder.",
"\"Fuck, that is a lot.\"",
"She grips you harder.",
"\"Do not let go.\""
]
},
"first_sex": {
"text": [
"The first time your cock sinks fully into Leah's pussy, her blunt confidence turns into a rough breath against your mouth.",
"She is wet and tight around you, hips already trying to pull more of you in.",
"\"Yeah. Fuck, that is it.\"",
"You start moving, and her hands drag down your back.",
"The first slow thrust becomes a harder one when she pulls you close.",
"\"More.\"",
"You fuck her deeper, and Leah's control turns into grip, breath, and heat.",
"\"There. Fucking there.\""
]
},
"first_anal": {
"text": [
"Leah's first anal is not a fantasy she rushes into. It is careful, explicit, and a little overwhelming once it starts.",
"Your cock presses into her tight asshole slowly, stretching her open while she grips the surface beneath her and breathes through it.",
"\"Fuck. Slow.\"",
"You give her slow.",
"Her body resists at first, then takes more of you by inches.",
"When you finally settle deeper inside her ass, Leah's voice drops rough and honest.",
"\"Okay. I get why people talk about that.\"",
"A breath.",
"\"Still slow.\""
]
},
"first_demand_anal_success": {
"text": [
"You demand anal from Leah, and she gives you a look like she is deciding whether you are brave or stupid.",
"\"That is a lot. Say it like you know that.\"",
"You hold your ground.",
"She looks down at your cock, then back at you.",
"\"Fine. You want my ass, you listen when I tell you slow.\"",
"Her voice drops.",
"\"And if you do it right, I will tell you when to give me more.\""
]
},
"first_undress_top_off": {
"text": [
"Leah takes her top off without making it delicate.",
"The fabric comes up and away, leaving her in her bra, shoulders strong, posture still guarded even with less armor on.",
"You look at her body and she notices immediately.",
"\"Yeah?\"",
"You tell her she looks good.",
"Her mouth twitches.",
"\"Good. I worked for it.\""
]
},
"first_undress_bra_off": {
"text": [
"Leah unhooks her bra and lets it drop without turning away.",
"Her tits are bare, but the moment is less about softness than trust.",
"She watches your face, not your hands.",
"\"You can touch. Just do not act like you found the only interesting part of me.\"",
"You touch her slowly anyway.",
"That earns you a breath she did not plan to give."
]
},
"first_undress_bottom_off": {
"text": [
"Leah pushes her bottoms down and steps out of them with the same directness she uses for everything else.",
"Her thighs are strong, her stance steady, but the way she watches you watch her gives the moment heat.",
"\"Still with me?\"",
"You say yes.",
"\"Good.\"",
"She steps closer.",
"\"Then stop looking like you forgot how hands work.\""
]
},
"first_undress_panties_off": {
"text": [
"Leah's panties come off last, and even she goes quieter when her wet pussy is bare in front of you.",
"She does not cover herself.",
"She does not turn it into a joke fast enough either.",
"You see the slick shine of her slit and the way her thighs tense when your eyes drop.",
"\"Yeah,\" she says, voice lower. \"I am wet.\"",
"A breath.",
"Her hand reaches for yours and puts it on her thigh.",
"\"Come here.\""
]
},
"first_massage_undress_top_off": {
"text": [
"During the massage, Leah removes her top because the fabric is in the way and because both of you know the excuse is getting thin.",
"\"Better access.\"",
"You return your hands to her bare shoulders and work around the bad one.",
"Her breath goes out slowly.",
"\"Yeah. That helps.\"",
"Then your thumbs pass lower and she gets quiet for a different reason."
]
},
"first_massage_undress_bra_off": {
"text": [
"Leah takes her bra off during the massage after your hands have earned enough trust not to rush.",
"Her bare chest rises and falls while she settles back into your touch.",
"You stay on her back and shoulders first.",
"\"Smart.\"",
"Then your hand slides near the side of her breast and her breath catches anyway.",
"\"Still felt that.\""
]
},
"first_massage_undress_bottom_off": {
"text": [
"Leah removes her bottoms during the massage and gives you a look like she is daring you to make a big deal out of it.",
"You do not.",
"You keep working her hips and lower back until her stance starts to loosen.",
"Her legs part slightly under your hands.",
"\"That was not a mistake.\"",
"She exhales.",
"\"Keep going.\""
]
},
"first_massage_undress_panties_off": {
"text": [
"When Leah slips her panties off during the massage, she gets very quiet for someone who is usually so direct.",
"Her pussy is wet, and she knows you can see it.",
"\"Yeah. I know.\"",
"You rest your hand on her thigh.",
"She opens her legs before you have to ask.",
"\"Touch me.\"",
"She does not joke this time."
]
},
"first_slide_inside_panties_public": {
"text": [
"Your fingers slide inside Leah's panties in public, and her whole body goes still for one hard second.",
"\"You are pushing your luck.\"",
"Her pussy is wet against your fingertips, slick and hot under the fabric.",
"You rub her clit in small strokes, hidden by the angle of your bodies.",
"Leah's jaw tightens.",
"\"Fuck.\"",
"Her hand catches your wrist, but she does not pull it away.",
"The next stroke makes her knees shift just enough to trap your fingers more tightly against her wet slit.",
"\"Small,\" she breathes, and the word is almost gone under the noise around you.\""
]
},
"first_deep_kiss": {
"text": [
"The first deep kiss with Leah starts firm and gets hungry fast.",
"Her mouth opens under yours, and her hand grabs your shirt like she got tired of pretending this was going to stay careful.",
"Your tongue touches hers and she makes a low sound against your mouth.",
"\"Yeah.\"",
"She pulls you closer.",
"\"Like that.\"",
"Then she kisses you again with less patience."
]
},
"first_invite_photoshoot": {
"text": [
"Leah looks from the camera to the spot by the wall.",
"\"That's where you want me?\"",
"You say yes.",
"She steps over there and looks at you.",
"\"What next?\"",
"You ask her to turn one shoulder.",
"She does.",
"\"Like this?\"",
"You nod. She looks at the camera.",
"\"Then take it.\""
]
},
"first_photo_hand_between_legs": {
"text": [
"Leah sees you set the camera down.",
"\"What now?\"",
"Your hand slides between her legs.",
"She grips your shoulder when your fingers brush her pussy.",
"\"Easy.\"",
"You rub her clit and feel her hips push into your palm.",
"\"Yeah. Like that.\"",
"You push a finger inside her. She braces one hand on the wall.",
"She exhales through her teeth. \"Keep going.\""
]
},
"first_invite_room": {
"text": [
"The first time Leah comes to your room, she looks around once and reads too much from too little.",
"\"You cleaned.\"",
"You ask if that is good.",
"\"It means you thought about me before I got here.\"",
"She steps closer.",
"\"Good. I like answers that do not waste time.\""
]
},
"first_private_movie": {
"text": [
"The first private movie with Leah lasts longer than expected because she actually tries to watch it.",
"Then your leg brushes hers and she glances over.",
"\"You planned that?\"",
"You say maybe.",
"She snorts, but she does not move away.",
"\"Terrible footwork.\"",
"Her hand settles on your thigh.",
"\"Try again.\""
]
},
"first_invite_gallery": {
"text": [
"The first gallery invite with Leah is not elegant, but she gives it a real try.",
"\"I am warning you, if this turns into ten rooms of expensive squares, I am blaming you.\"",
"She ends up stopping in front of a photo of a tired boxer sitting alone after a match.",
"For once, she does not make a joke right away.",
"\"That one gets it.\"",
"You ask what.",
"\"The part after everyone stops watching.\""
]
},
"first_invite_workout": {
"text": [
"The first workout with Leah is not a date in her mind until it suddenly is.",
"She corrects your stance, taps your knee into place, and tells you to breathe before you make the set ugly.",
"You listen.",
"Her expression changes then, small but real.",
"\"Good.\"",
"She steps closer to adjust your shoulders, hands firm and warm.",
"\"Most people hear correction and start defending themselves. You got better instead.\""
]
},
"first_public_handjob": {
"text": [
"The first time Leah strokes your cock in public, she does it like someone who knows exactly how stupid the idea is and likes that anyway.",
"Her hand slips under cover, fingers closing around your shaft.",
"\"Keep your face steady.\"",
"She strokes you slowly, grip firm, thumb dragging over the head when your breath catches.",
"You try to stay still.",
"Leah feels the twitch in your cock and smiles without looking at you.",
"\"You almost look normal. Almost.\""
]
},
"first_footjob": {
"text": [
"The first footjob with Leah starts as a joke and stops being one when your reaction is too obvious.",
"\"Seriously? This works for you?\"",
"She presses her foot against your cock again, slower.",
"You react, and her eyebrows lift.",
"\"Huh.\"",
"The next stroke is firmer, dragging along your shaft until your hips shift.",
"\"Okay. I did not expect you to react that much.\""
]
},
"first_titfuck": {
"text": [
"The first time Leah lets you fuck her tits, she looks amused by how much you want it.",
"\"You are very focused for a man pretending not to be.\"",
"She presses her breasts around your cock and lets you start moving between them.",
"Her breast sensitivity is not what drives it. Your reaction is.",
"You thrust between her tits, cock sliding against warm skin while she watches your face.",
"\"Yeah. That is the part I like.\"",
"She tightens her hold.",
"\"Seeing you lose the plot.\""
]
},
"first_climax_body": {
"text": [
"The first time you cum on Leah's body, she watches you right up to the moment you break.",
"Your cock jerks, spilling hot cum over her stomach and thigh.",
"Leah exhales sharply when the first streak hits her skin.",
"\"Fuck.\"",
"Another pulse lands lower, and she looks down at the mess before looking back at your face.",
"\"Yeah. You needed that.\""
]
},
"first_climax_back": {
"text": [
"The first time you cum on Leah's ass, she looks back over her shoulder just before it happens.",
"Your cock pulses, streaking cum across her ass while her fingers grip the surface under her.",
"\"Oh.\"",
"The sound is rougher than she meant it to be.",
"You spill the last of it over her skin, and Leah stays still long enough to feel it.",
"\"Okay. That felt dirtier than expected.\""
]
},
"first_climax_boobs": {
"text": [
"The first time you cum on Leah's tits, she is more interested in your face than the mess.",
"Your cock jerks, painting her chest with hot cum while her hands hold her breasts steady.",
"She looks down, then back up.",
"\"That one did something to you.\"",
"Another spurt lands across her skin.",
"Leah's mouth twitches.",
"\"Good. I like knowing where the weak spots are.\""
]
},
"first_climax_face": {
"text": [
"The first time you cum on Leah's face, she keeps her eyes on you until the first streak hits her cheek.",
"She flinches once, then holds still while your cock pulses again near her mouth.",
"Hot cum marks her face, messy and blatant.",
"\"Fuck.\"",
"She wipes a little from the corner of her mouth with her thumb.",
"The look she gives you is sharp, flushed, and not offended.",
"\"That is going to stay in your head.\""
]
},
"first_climax_mouth": {
"text": [
"The first time Leah lets you cum in her mouth, she knows exactly what she is doing and still looks hungry when it starts.",
"Your cock pulses on her tongue, and her hand grips your thigh as the first spurt hits.",
"You cum into her mouth in thick pulses, and Leah takes it with a low sound in her throat.",
"She swallows once, then keeps her mouth on you for the last twitch.",
"When she pulls back, her lips are wet and her breathing is rough.",
"\"Yeah.\"",
"She wipes her mouth with the back of her hand.",
"The cocky line almost comes back. Then she just exhales and looks at you, flushed.",
"\"Fuck. Okay.\""
]
},
"first_climax_public_hand": {
"text": [
"The first time you cum in Leah's hand in public, she holds you steady like she is stopping you from giving the whole thing away.",
"\"Quiet.\"",
"Her grip tightens around your cock, hidden under cover, and the next stroke pushes you over.",
"You cum into her hand, hot and messy, while her face stays almost normal.",
"Leah closes her fingers around your load and exhales through her nose.",
"\"Jesus. You really went for it.\"",
"A tiny smile breaks through.",
"\"Good.\""
]
},
"first_climax_inside_pussy": {
"text": [
"The first time you cum inside Leah's pussy, she realizes it from the way your cock starts throbbing deep in her.",
"\"Inside?\"",
"You are already too close to answer cleanly.",
"Her legs tighten around you instead of letting go.",
"You pulse inside her cunt, filling her while her pussy clenches hard around every spurt.",
"Leah gasps, hands locked on your back.",
"\"Fuck. I can feel it.\"",
"She holds you there until the last twitch fades, breathing hard against your mouth.",
"For once, the next thing she says is not sharp.",
"\"Wait. Just... stay there a second.\""
]
},
"first_climax_inside_ass": {
"text": [
"The first time you cum inside Leah's ass, she is already fighting to keep her breathing steady.",
"Your cock is buried in her tight asshole when you warn her.",
"\"Okay.\"",
"The first pulse makes her grip the surface beneath her hard.",
"You fill her ass with hot cum, cock jerking inside her while her body trembles around you.",
"Leah moans into her arm, rough and surprised by how much the feeling lands.",
"\"Fuck. I felt that.\"",
"When it is over, she stays still, breathing hard.",
"\"Give me a second before you move.\""
]
}
}
}
END_FIRST_TIME_DATA %//% FIRST_TIME_DATA
{
"girlId": "g5",
"girl": "Sofia Reed",
"readyVariable": "first006ready",
"notes": [],
"moments": {
"first_meeting": {
"text": [
"You meet Sofia while she is untangling a problem with one hand and pretending it is funnier than annoying.",
"She winces when the noise around you spikes, then laughs under her breath and keeps working.",
"\"If life could stop screaming directly into my ear, that would be adorable.\"",
"You help before the mess gets worse.",
"She watches your hands for a second, then looks back at your face.",
"\"Useful and not immediately annoying. Rare combo.\"",
"Sofia grins like she has already decided the day might be salvageable.",
"\"I am Sofia. If I forget your name, blame the chaos.\""
]
},
"first_phone_success": {
"text": [
"Sofia gives you her number after making you work just enough for it to feel like a win.",
"She takes your phone, types it in, then adds a tiny music note after her name.",
"\"So you remember I am the fun one.\"",
"You say you probably would have remembered.",
"\"Good answer. Possibly fake, but good.\"",
"She hands the phone back and steps closer for half a second, close enough that everything else feels farther away.",
"\"Text me something better than hey. I get a lot of hey.\""
]
},
"first_address_success": {
"text": [
"Sofia gives you her address with a half-smile that looks braver than she feels.",
"\"Do not look like I handed you a backstage pass. It is an apartment.\"",
"She writes it down, then taps the paper against your chest.",
"\"But it is mine, so do not be weird about it.\"",
"A pause.",
"Her smile softens before she covers it with another joke.",
"\"And if you judge the laundry situation, I will write a sad song about you and make it catchy.\""
]
},
"first_hug": {
"text": [
"The first hug with Sofia starts like a joke and becomes real too quickly for her to dodge it.",
"She steps into your arms with a little laugh, one hand landing on your back, the other still holding her bag strap.",
"\"Careful. I am full of loose change and bad decisions.\"",
"Then her body settles against yours.",
"The joke fades for one quiet breath.",
"She smells faintly like perfume and night air.",
"\"Okay,\" she says into your shoulder, softer than before. \"That was a good one.\""
]
},
"first_kiss_cheek": {
"text": [
"You kiss Sofia on the cheek before she can turn the moment into banter.",
"She freezes for half a beat, then touches the spot with two fingers.",
"\"That was unfairly cute.\"",
"You ask if unfairly cute is allowed.",
"She tilts her head, pretending to consider it.",
"\"Allowed, yes. Free, no.\"",
"Then she gives your sleeve a tiny tug and lets the smile stay."
]
},
"first_dirty_whisper": {
"text": [
"You lean close enough that the noise around you covers every word.",
"Then you tell Sofia you want your hand at her waist, your mouth on her neck, and her trying to keep that bright smile while your fingers make that impossible.",
"Her eyes flick to the side, then back to you.",
"\"You have thought about that too much,\" she whispers, and does not sound offended.",
"You say you have thought about it.",
"Her grin comes back slower this time, warmer under the tease.",
"\"Yeah. I can tell.\"",
"She leans in until her lips almost brush your ear.",
"\"Think about the part where I look back at you.\""
]
},
"first_massage_start": {
"text": [
"Sofia accepts the massage like she does not fully trust anything that involves being quiet.",
"\"If I start making weird singer noises, ignore me.\"",
"You start at her shoulders, over her clothes, working through the tension left by bad chairs, late buses, and too much time standing near speakers.",
"Her first exhale is almost a laugh.",
"\"Oh. That is rude. My body liked that before I approved it.\"",
"You keep your hands steady.",
"Sofia gets quiet for once, then ruins it softly.",
"\"Fine. You can keep doing that.\""
]
},
"first_massage_orgasm": {
"text": [
"Sofia's first massage orgasm starts when your hands reach a place where her next joke dies in her throat.",
"You work her shoulders, then her back, then the tense line of her hips until her voice thins and her thighs stop staying still.",
"\"Your hands are getting dangerous.\"",
"Your hand slides lower.",
"She looks back at you, cheeks warm, and does not move away.",
"By the time your fingers press between her legs, her panties are already damp against her pussy.",
"\"Oh.\"",
"The word is small enough to sound unlike her.",
"You rub her through the fabric until her hips start following your hand.",
"Then your fingers slip under and find her clit slick and swollen.",
"Sofia grabs the edge of the seat and laughs once, breathless and nervous.",
"\"Fuck. Okay. Not laughing.\"",
"You slide two fingers into her wet cunt, thumb still rubbing her clit, and the next sound comes out rawer than anything she meant to give you.",
"Her pussy clenches around your fingers while her hips grind down into your hand.",
"\"There. Don't... fuck, there.\"",
"The orgasm hits her fast and messy. Her thighs close around your wrist, cunt pulsing around your fingers while she moans into her own shoulder like someone might hear even if nobody is there.",
"Afterward, she stays still, breathing hard, one hand over her face until the grin slowly comes back.",
"\"If I ever say massage is boring, remind me I am a liar.\""
]
},
"first_meal": {
"cookingVariants": {
"threshold": 45,
"low": [
"You cook for Sofia, and she treats the first bite like an unpaid gig she hopes will surprise her.",
"\"This could use a chorus.\"",
"You ask if food can have a chorus.",
"\"Everything can have a chorus if it wants people to remember it.\"",
"She eats another bite anyway.",
"\"Not my favorite verse, but I would stay for the chorus.\""
],
"high": [
"You cook well enough that Sofia stops joking after the first bite.",
"\"Oh. Wait. That is actually good.\"",
"She leans over the plate like she is trying to catch a harmony.",
"The meal turns into flavor, cheap ingredients, late-night food, and the survival art of eating decently when rent is rude.",
"\"This tastes like someone planned ahead, which is very suspicious.\"",
"She takes another bite, smiling despite herself.",
"\"Do it again sometime. I might even pretend to help.\""
]
}
},
"first_kiss": {
"text": [
"The first real kiss with Sofia does not stay gentle for long.",
"She lets your mouth meet hers, smiles against it, then kisses back like she has been waiting to see if you would keep up.",
"Her hand catches your collar.",
"The noise around you fades under the warmth of her mouth and the way her tongue brushes yours.",
"\"Good,\" she murmurs, too close to make it casual.",
"You kiss her again and she makes a soft sound into your mouth, less polished than her usual laugh.",
"When she pulls back, her eyes stay on your lips.",
"\"That one gets a second verse.\""
]
},
"first_handjob": {
"text": [
"The first time Sofia gets her hand around your cock, she looks far too pleased with herself for someone pretending to be casual.",
"Her fingers tighten, then loosen, then tighten again when she feels you twitch.",
"\"Oh, that is responsive.\"",
"She says it like a joke, but her eyes stay on your shaft while her thumb brushes the head.",
"Your breath catches and her smile turns nervous at the edges.",
"\"Okay. Less joking. Maybe a little joking.\"",
"Her hand starts moving again, playful at first, then slower when she realizes exactly what she is doing to you."
]
},
"first_blowjob": {
"text": [
"Sofia looks at your cock with a grin that starts playful and turns quieter when she wraps her hand around your shaft.",
"\"You are very proud of this situation.\"",
"You say she is staring.",
"\"I sing for crowds. I can stare at one cock.\"",
"The line lands, then her mouth softens as she strokes you once and watches you twitch in her hand.",
"She leans in and licks the head of your cock, tasting the precum there.",
"\"Oh.\"",
"Her lips close around you before she can make another joke.",
"She takes you in slow, mouth warm and wet, tongue working under the shaft while her hand strokes what she cannot take yet.",
"Your groan makes her eyes lift.",
"That is the part she likes: your reaction, immediate and impossible to fake.",
"She takes your cock deeper, messier now, lips wet when she pulls back to breathe.",
"\"Yeah. I like that sound.\""
]
},
"first_cunnilingus": {
"text": [
"Sofia is used to being watched, but your face between her thighs makes the attention feel much harder to laugh off.",
"\"If you look that serious, I am going to get nervous.\"",
"You kiss her inner thigh instead of answering.",
"Her fingers tighten against the surface beneath her.",
"When your tongue drags up her wet slit, the first sound she makes is almost a gasp and almost your name.",
"You lick her pussy again, slower, spreading her folds with your tongue until you find her clit.",
"\"Fuck.\"",
"Her hips lift toward your mouth before she can turn it into a joke.",
"You keep your tongue on her clit, and Sofia's performer voice disappears into short, breathy sounds.",
"\"There. Yes. There.\"",
"She grabs your hair, not pushing, just holding on while her body stops pretending this is under control."
]
},
"first_facesitting": {
"text": [
"Sofia climbs over your face like she is trying to decide whether this is filthy or hilarious.",
"\"This is a very good angle for you,\" she says, hovering close enough for her wet pussy to warm your mouth, \"and a very dangerous one for me.\"",
"Then her wet pussy lowers to your mouth and the joke gets swallowed by her first sharp breath.",
"Your tongue works up her slit and finds her clit.",
"Her thighs tighten around your head.",
"\"Oh, fuck.\"",
"She grips the headboard, hips hovering for a few seconds before pleasure makes her sink lower.",
"You eat her pussy until her breath turns shaky and her body starts moving with your tongue.",
"\"Okay. No, yeah. Keep doing that.\"",
"She laughs once, almost helpless, then moans when your mouth does not let her keep laughing."
]
},
"first_beg_facesit_success": {
"text": [
"You beg Sofia to sit on your face, and her grin turns bright enough to be trouble.",
"\"That is the kind of request a girl remembers.\"",
"You tell her you meant it.",
"Her thighs press together once.",
"\"I know. That is why it worked.\"",
"She climbs over you, wet pussy already close enough that you can smell her.",
"When she lowers onto your mouth, the first lick makes her laugh break into a gasp.",
"\"Oh. You really did mean it.\"",
"Her hips dip again, less careful this time."
]
},
"first_69": {
"text": [
"Sofia agrees to sixty-nine because the idea sounds like chaos and she likes chaos when it has a rhythm.",
"\"If we both get distracted, I am blaming you.\"",
"She positions herself over you, pussy lowering toward your mouth while her lips hover near your cock.",
"The first minute is breath, shifting thighs, her hand around your shaft, your tongue finding where she gets wettest.",
"Then her mouth closes around your cock and your tongue lands on her clit at the same time.",
"Sofia moans around you, surprised and messy.",
"She pulls off with wet lips and a laugh that does not quite work.",
"\"Okay. That is a lot.\"",
"Then your tongue moves again and she takes your cock back into her mouth before finishing the thought."
]
},
"first_rub_pussy_fabric_public": {
"text": [
"The first time you rub Sofia's pussy through fabric in public, her eyes go bright before her breath catches.",
"\"Here?\"",
"You keep your fingers small and hidden, pressing against her slit through the fabric.",
"Her smile stays on, but her breath changes.",
"The cloth warms and dampens under your touch.",
"\"You are going to make me miss my cue.\"",
"You rub her a little firmer.",
"Her knees press together around your hand, trapping your fingers against her wet pussy.",
"\"Fuck. Okay. Tiny movements. Tiny.\""
]
},
"first_fingering": {
"text": [
"The first time your fingers slide into Sofia's pussy, she tries to watch your face and fails when the feeling hits.",
"She is wet enough that the first finger sinks in smoothly, her cunt tightening around you as her breath catches.",
"\"Oh.\"",
"You rub her clit with your thumb and start moving inside her.",
"Sofia's hand catches your wrist, then slides up your arm because she does not actually want to stop you.",
"You add a second finger when her hips start moving into your hand.",
"\"Fuck. That is... yeah.\"",
"Her pussy clenches around your fingers, slick and hot, and her voice turns rougher with every stroke.",
"\"Do that again.\"",
"You curl your fingers and her next moan lands without the old smile to dress it up."
]
},
"first_analingus": {
"text": [
"Sofia looks back fast when your mouth starts moving toward her ass.",
"\"That is not usually where the applause goes.\"",
"She says it, but she stays where she is.",
"You kiss the back of her thigh, then lower, hands spreading her carefully.",
"Your tongue touches her asshole and her fingers grip the surface beneath her.",
"\"Oh.\"",
"The second lick is slower, dirtier, circling the tight little hole while her hips try to decide whether to move away or back.",
"\"Fuck, that is weird.\"",
"A breath.",
"\"Weird. Not bad. Just give me a second.\""
]
},
"first_ask_sex_success": {
"text": [
"You ask Sofia for sex, and her playful expression drops into something warmer and much less public.",
"\"Yeah?\"",
"You say yes.",
"She steps closer, fingers hooking lightly into your shirt.",
"\"Good. I like when people say the actual thing.\"",
"Her mouth brushes yours once, not quite a kiss.",
"\"I want you too.\""
]
},
"first_beg_sex_success": {
"text": [
"You beg Sofia for sex, and the sound of it lights up her face before it softens her.",
"\"Oh, that was honest.\"",
"You say it again, less polished and more desperate.",
"Her hand slides to the back of your neck.",
"\"Careful. I like a good chorus.\"",
"The joke is there, but her breathing is not joking.",
"\"Come here.\""
]
},
"first_demand_sex_success": {
"text": [
"You demand sex from Sofia, and she stares at you like she is deciding whether to laugh or kiss you.",
"\"That is a dangerous way to talk to a singer.\"",
"You hold the look and say it again.",
"Her grin fades into heat.",
"\"Okay.\"",
"She steps into you, hips close, eyes bright.",
"\"Now make it sound true with your hands.\""
]
},
"first_vaginal_intro": {
"text": [
"When your cock presses against Sofia's wet slit for the first time, her jokes finally run out.",
"She looks down between you, then back up with her mouth slightly open.",
"\"Oh.\"",
"You push in slowly, the head of your cock spreading her pussy open inch by inch.",
"Sofia grabs your shoulder as her cunt stretches around you, wet and tight and much quieter than she usually is.",
"\"Fuck. I feel you.\"",
"You slide deeper and the rest of the sentence becomes a moan.",
"Her hips lift into you.",
"\"Yeah. Keep going.\""
]
},
"first_anal_intro": {
"text": [
"Sofia's first anal starts with more caution than her grin prepared you for.",
"Her anal sensitivity is low enough that curiosity does not erase the nerves.",
"\"Slow. I am serious this time.\"",
"You slick your cock and press the head against her tight asshole.",
"She grips the surface beneath her when the pressure starts to open her.",
"You push in carefully, inch by inch, feeling her ass resist around you.",
"\"Fuck.\"",
"It comes out sharp, not playful.",
"You hold still until her breathing steadies.",
"\"Okay. Little more. Little.\""
]
},
"first_position_missionary": {
"text": [
"Missionary makes Sofia feel strangely exposed because there is nowhere to perform except your face.",
"Your cock slides into her pussy while she watches you watch her.",
"For once, her smile keeps slipping.",
"\"This one is very... eye contact.\"",
"You thrust slowly, and her cunt tightens around you.",
"The next sound comes out before she can make it clever.",
"\"Fuck.\"",
"Her hands pull you closer.",
"\"Okay. I get it. Keep looking at me.\""
]
},
"first_position_cowgirl": {
"text": [
"Cowgirl gives Sofia enough space to act brave, which is exactly why she tries it.",
"She lowers herself onto your cock with both hands on your chest, grin shaky around the edges as her pussy takes you inch by inch.",
"\"I am absolutely making this look better than it feels in my knees.\"",
"Sofia rolls her hips forward, and her grin drops.",
"\"Oh.\"",
"She rolls her hips again, slower, finding the place that makes her clench around you.",
"\"Okay. That part is good.\""
]
},
"first_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl is Sofia's fantasy before she ever admits it.",
"She turns away from you, lowers herself onto your cock, and looks back over her shoulder at the exact moment her pussy starts taking you.",
"The view is impossible to miss: her ass settling over your hips, her back arched, her thighs bracketing you while she sinks lower.",
"She catches you staring and smiles like she just found the spotlight.",
"\"Yeah. Look.\"",
"Then she starts moving.",
"Every roll of her hips shows you how well she knows what the position does to her body.",
"Your hands settle on her waist, close to her ass, and her cunt tightens around your cock.",
"\"Fuck. I felt that. Keep watching.\""
]
},
"first_position_doggy": {
"text": [
"Doggy makes Sofia more self-conscious than reverse cowgirl because she cannot check your face as easily.",
"She looks back once as your cock lines up with her wet pussy from behind.",
"\"You better be enjoying the view.\"",
"You push into her slowly, feeling her cunt stretch around you while her fingers grip the surface beneath her.",
"Her ass shifts back against your hips, and the attention makes her breath catch.",
"\"Oh. Okay.\"",
"You thrust again, deeper, and her back arches before she can turn it into a joke.",
"\"Fuck. That one.\""
]
},
"first_position_wall": {
"text": [
"Wall sex makes Sofia laugh at first because it feels like something that should happen in a bad music video.",
"Then you lift her, press her back to the wall, and line your cock up with her wet pussy.",
"The laugh stops when you push inside.",
"\"Oh, fuck.\"",
"Her legs tighten around you, hands grabbing your shoulders as your cock fills her.",
"You thrust and the wall catches the sound her body makes.",
"\"Okay. Better video than expected.\"",
"The next thrust makes her stop talking."
]
},
"first_anal_position_missionary": {
"text": [
"Missionary anal is too close for Sofia to hide how nervous she is.",
"You press the head of your cock against her tight asshole while her hands grip your shoulders.",
"\"Slow. For real.\"",
"You push in carefully, feeling her ass resist and then give around the head.",
"Her eyes go wide.",
"\"Oh god.\"",
"You hold still, only partly inside her, while she breathes against your mouth.",
"\"Okay. That is a lot. A little more.\""
]
},
"first_anal_position_cowgirl": {
"text": [
"Cowgirl anal makes Sofia look braver than she feels.",
"She lowers herself onto your cock slowly, tight asshole stretching around the head while her hands press into your chest.",
"\"I am making a face, aren't I?\"",
"You do not answer fast enough.",
"She laughs once, breathless, then sinks a fraction lower.",
"\"Fuck.\"",
"Her ass tightens around you hard.",
"\"Okay. No jokes for a second.\""
]
},
"first_anal_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl anal gives Sofia the spotlight and the nerves at the same time.",
"She faces away, ass over your hips, and lowers herself onto the head of your cock.",
"Her tight asshole stretches slowly around you while her hands brace on your thighs.",
"She looks back over her shoulder, trying to keep the grin alive.",
"It breaks when she takes another inch.",
"\"Fuck.\"",
"You can see everything: her ass spread around your cock, her back tense, her thighs shaking.",
"That attention gets to her even through the stretch.",
"\"I know you are looking. Don't stop.\""
]
},
"first_anal_position_doggy": {
"text": [
"Doggy anal makes Sofia go quieter than usual.",
"She braces herself, ass exposed, while you slick your cock and press it to her tight asshole.",
"\"Careful.\"",
"You push in slowly, stretching her open inch by inch.",
"The resistance is tight, hot, and serious enough to take the joke out of her mouth.",
"\"Fuck, wait.\"",
"You stop until she breathes again.",
"Her hips push back by a tiny amount.",
"\"Okay. Just... slow.\""
]
},
"first_anal_position_wall": {
"text": [
"Wall anal makes Sofia feel too exposed to perform properly.",
"You hold her against the wall with your cock pressed to her asshole, her breath already shaky before you push in.",
"\"This is a terrible idea.\"",
"She says it while keeping her legs around you.",
"You start slow, stretching her tight ass around the head of your cock.",
"Her laugh breaks into a moan.",
"\"Fuck. Okay. Terrible but not bad.\"",
"You hold her steady until her body gives enough to take more."
]
},
"first_sex": {
"text": [
"The first time your cock sinks fully into Sofia's pussy, the performer in her drops the act.",
"She is wet and tight around you, hips already trying to turn the first thrust into rhythm.",
"\"Oh, fuck.\"",
"You move slowly at first, and she grabs your shoulders like she needs somewhere to put the noise.",
"Her cunt clenches around you with every stroke.",
"\"That is good. That is really good.\"",
"The next thrust goes deeper and her head tips back.",
"For once, Sofia does not look like she is singing for anyone.",
"She just moans."
]
},
"first_anal": {
"text": [
"Sofia's first anal is not her main fantasy, and the scene knows it.",
"There is more lube, more breathing, more stopping to check whether the stretch is too much.",
"Your cock presses into her tight asshole slowly, and every inch makes her grip the surface beneath her harder.",
"\"Fuck. That is different.\"",
"You hold still when she needs it.",
"Then her body gives a little more, ass opening around your cock with tight, hot resistance.",
"Sofia swallows a nervous laugh.",
"\"Okay. I am still here. Keep going a little.\""
]
},
"first_demand_anal_success": {
"text": [
"You demand anal from Sofia, and for once her grin does not land immediately.",
"\"You really chose the hard way to ask.\"",
"You say it again, lower, making the want clear without turning it into a joke.",
"Her eyes drop, then come back up.",
"\"I am not promising I will love it.\"",
"A pause.",
"\"But I am curious enough to be stupid.\""
]
},
"first_undress_top_off": {
"text": [
"Sofia takes her top off with the quick ease of someone who has changed in too many bad backstage corners.",
"The fabric comes away, and for a second she holds your gaze instead of covering herself.",
"\"Do not make the obvious comment.\"",
"You ask which one.",
"Her smile flashes.",
"\"Any of them.\"",
"Then she lets you look anyway, enjoying the attention more than the warning admits."
]
},
"first_undress_bra_off": {
"text": [
"Sofia unhooks her bra and lets it fall with more attitude than vulnerability.",
"Her tits are bare, but her breath changes because your eyes stay on her.",
"It is your eyes on her.",
"\"You are very quiet.\"",
"You tell her you are looking.",
"That makes her smile turn warmer.",
"\"Good. I dressed down for an audience of one.\""
]
},
"first_undress_bottom_off": {
"text": [
"Sofia slides her bottoms down slowly enough to know exactly what she is doing.",
"Her hips shift as the fabric drops, and she looks back over one shoulder before stepping free.",
"\"This is the part where you try not to look too happy.\"",
"You fail a little.",
"She notices.",
"\"Cute.\"",
"She smiles, but her thighs press together before she can stop them."
]
},
"first_undress_panties_off": {
"text": [
"Sofia's panties come off last, and she gets quieter in a way even she cannot joke over immediately.",
"She slides them down, exposing her wet pussy, slit slick and flushed from how long the teasing has been working.",
"You look, and her breath catches before the smile returns.",
"\"Yeah. I know.\"",
"She steps out of the panties and lets them fall aside.",
"\"I was going to act cooler about this. My body disagreed.\""
]
},
"first_massage_undress_top_off": {
"text": [
"During the massage, Sofia removes her top because the fabric is in the way and because she likes feeling your attention change.",
"\"Better access,\" she says, like she did not enjoy saying it.",
"Your hands return to her bare shoulders.",
"Her skin is warm, tense from late nights and bad chairs.",
"When your thumbs press in, she exhales and lets her head dip forward.",
"\"Okay. That was less sexy in my head and better in my body.\""
]
},
"first_massage_undress_bra_off": {
"text": [
"Sofia takes her bra off during the massage with a little flourish that becomes shyer once it is actually off.",
"Her tits are bare, nipples hard in the air.",
"You keep your hands on her back first, and that makes her quieter than rushing would have.",
"\"I thought you would go straight for them.\"",
"You keep working her shoulders.",
"Her breath softens.",
"\"Good surprise.\""
]
},
"first_massage_undress_bottom_off": {
"text": [
"Sofia removes her bottoms during the massage and tries to make it look like part of the show.",
"It almost works.",
"Then your hands return to her lower back and hips, and her breathing gives her away.",
"You work your thumbs along the tense line above her ass.",
"She looks back at you when your gaze drops.",
"\"Caught you.\"",
"Her smile is warm and dirty.",
"\"Not complaining.\""
]
},
"first_massage_undress_panties_off": {
"text": [
"When Sofia slips her panties off during the massage, the tease gets less safe and much more real.",
"Her pussy is wet when she shifts back into your reach.",
"\"Okay,\" she says, then laughs under her breath. \"That sounded nervous because it was.\"",
"You rest a hand on her thigh.",
"She opens her legs a little.",
"\"Touch me before I make this into a joke and ruin it.\""
]
},
"first_slide_inside_panties_public": {
"text": [
"Your fingers slide inside Sofia's panties in public, and the stage smile stays up for one brave second.",
"Then your fingertips find her wet pussy.",
"\"Oh.\"",
"She stares toward the room like she can hold the whole scene together by looking normal.",
"You rub her clit in tiny hidden circles, feeling her get slicker under your hand.",
"Her voice drops under the noise.",
"\"You can feel that, can't you?\"",
"You keep moving.",
"Sofia's hips shift once, just enough to press herself harder against your fingers.",
"\"Fuck. I hope nobody is watching. No, wait. I don't know.\""
]
},
"first_deep_kiss": {
"text": [
"The first deep kiss with Sofia starts loud around you and quiet between you.",
"Her mouth opens under yours, tongue brushing yours with less teasing than usual.",
"Your hand settles at her waist and she leans into it.",
"The kiss gets messy fast, warm and wet and harder to pass off as flirting.",
"Sofia pulls back just enough to breathe.",
"\"Yeah.\"",
"Then she kisses you again before the performance can have her back."
]
},
"first_invite_photoshoot": {
"text": [
"Sofia drops her jacket on a chair and sees the camera.",
"\"So this is a real shoot.\"",
"You point to the wall.",
"\"First picture there.\"",
"She fixes her hair, then shakes her head at herself.",
"\"I always do that when someone brings out a camera.\"",
"You lift it.",
"\"All right. Take it.\""
]
},
"first_photo_hand_between_legs": {
"text": [
"The camera goes on the table. Sofia's eyes follow your hand.",
"\"Oh, we're done working?\"",
"Your fingers slide between her legs.",
"She gasps and grabs the table when you rub her clit.",
"\"Okay. That got my attention.\"",
"You push a finger into her wet pussy.",
"She tips her head back.",
"\"Don't stop. Seriously.\""
]
},
"first_invite_room": {
"text": [
"The first time Sofia comes to your room, she looks around like every detail might become a lyric later.",
"\"So this is where you make questionable decisions.\"",
"You ask if she is counting herself as one.",
"She drops her bag and smiles, but the smile is softer than the line.",
"\"Maybe. I am still deciding how questionable I want to be.\"",
"Her eyes land on the bed, then back on you.",
"\"Okay. More than maybe.\""
]
},
"first_private_movie": {
"text": [
"The first private movie with Sofia barely pretends to be about the movie.",
"She comments on the soundtrack twice, mocks one line of dialogue, then goes quiet when your thigh touches hers.",
"\"This film has terrible pacing.\"",
"You point out that she has not looked at the screen in five minutes.",
"Sofia turns toward you, caught and smiling.",
"\"Maybe I found the better scene.\"",
"Her hand slides over yours before the next line of the movie can interrupt."
]
},
"first_invite_gallery": {
"text": [
"The first gallery invite with Sofia works because she treats the whole place like a quieter stage.",
"She stops in front of a painting with too much color and laughs under her breath.",
"\"That one looks like a chorus exploded.\"",
"Then she grows more thoughtful in front of a photograph of an empty club after closing.",
"The chairs are up, the lights are ugly, and the floor looks sticky even in black and white.",
"\"That one gets it.\"",
"You ask what.",
"\"The part after everyone goes home.\""
]
},
"first_invite_workout": {
"text": [
"The first workout with Sofia is half effort and half performance.",
"\"If I die doing squats, make sure the last photo has good lighting.\"",
"She complains, laughs, tries anyway, and gets annoyed when the exercise is harder than it looks.",
"You correct her stance without making a big deal of it.",
"That earns you a real look.",
"\"Okay. That actually helped.\"",
"She adjusts again, more serious this time.",
"\"Still hate it. But slightly more professionally.\""
]
},
"first_public_handjob": {
"text": [
"The first time Sofia wraps her hand around your cock in public, she looks like she is about to get away with something and knows it.",
"Her fingers close around your shaft under cover, hidden by the angle of your bodies and the noise around you.",
"\"Do not make a face.\"",
"She strokes you slowly, then smiles when you fail by a fraction.",
"\"That was a face.\"",
"Her thumb brushes the head of your cock and your body twitches in her hand.",
"The teasing leaves her voice for a second.",
"\"Fuck. I felt that.\""
]
},
"first_footjob": {
"text": [
"The first footjob with Sofia begins as a dare neither of you took seriously enough.",
"\"This is either very stupid or very inspired.\"",
"She presses her foot against your cock, then watches your reaction change the joke.",
"\"Oh. Inspired, then.\"",
"Her next stroke is slower, dragging along your shaft until your hips shift.",
"She laughs, but the sound is warmer now.",
"\"I love when a bit accidentally works.\""
]
},
"first_titfuck": {
"text": [
"The first time Sofia lets you fuck her tits, she does it more for the sight of your face than for the feeling itself.",
"She presses her breasts together around your cock, nipples hard but not especially sensitive, eyes fixed on you as you start to move.",
"Your cock slides between her tits in warm, tight strokes.",
"Sofia watches the way your breath changes.",
"\"Yeah. That is the part.\"",
"She tightens her hands around her breasts, giving you more pressure.",
"\"You look like you forgot every word you know.\""
]
},
"first_climax_body": {
"text": [
"The first time you cum on Sofia's body, she watches you like she is waiting for the chorus to hit.",
"Your cock jerks, spilling hot cum across her stomach and thigh.",
"Her breath catches when the first streak lands.",
"\"Oh.\"",
"Another pulse paints her skin, and the performance smile drops into something more honest.",
"She looks down at the mess, then back at your face.",
"\"That was a very good finish.\""
]
},
"first_climax_back": {
"text": [
"The first time you cum on Sofia's ass, she looks back over her shoulder just in time to see your face change.",
"Your cock pulses, streaking hot cum across her ass while her fingers grip the surface beneath her.",
"She gasps when the first line lands.",
"\"Fuck.\"",
"Another spurt hits lower, and she stays still, letting you finish over her skin.",
"Her voice comes back rough and pleased.",
"\"Okay. I get why you wanted the view.\""
]
},
"first_climax_boobs": {
"text": [
"The first time you cum on Sofia's tits, she is watching your reaction more than the target.",
"Your cock jerks, spilling cum over her breasts and down between them.",
"She inhales when the heat hits her skin, then looks down with a crooked smile.",
"\"Messy.\"",
"Another pulse lands across her chest.",
"She looks back up at you, cheeks flushed.",
"\"Very photogenic, though.\""
]
},
"first_climax_face": {
"text": [
"The first time you cum on Sofia's face, the first streak catches her cheek and wipes the joke right off her mouth.",
"She gasps, eyes blinking once, then stays there while your cock pulses again near her lips.",
"Hot cum marks her face, messy and bright against her skin.",
"\"Oh my god.\"",
"The words come out half laugh, half shock.",
"She touches the edge of it with two fingers and looks at you through the mess.",
"\"You are going to remember that one.\""
]
},
"first_climax_mouth": {
"text": [
"The first time Sofia lets you cum in her mouth, the decision looks braver than her jokes made it sound.",
"Swallowing is not her favorite, and she is clearly thinking about that when your cock starts throbbing on her tongue.",
"You warn her, and she keeps her lips around you for the first pulse.",
"Cum hits her tongue and her fingers dig into your thigh.",
"\"Mm.\"",
"She swallows once, awkward and determined, then pulls back before the last twitch can make it too much.",
"A little cum catches at the corner of her mouth.",
"She wipes it with her thumb, breathing hard.",
"\"Okay. Not my usual encore.\"",
"A pause.",
"\"But I liked your face.\""
]
},
"first_climax_public_hand": {
"text": [
"The first time you cum in Sofia's hand in public, she looks thrilled and terrified by the timing.",
"Her fingers stroke your cock under cover, fast enough now that hiding it takes both of you.",
"\"You are close, aren't you?\"",
"You barely manage an answer before your cock pulses in her hand.",
"You cum into her palm, hot and messy, while she stares forward like the room is not one glance away from knowing.",
"\"Fuck.\"",
"Her fingers close around your load, holding the mess hidden.",
"A laugh slips out of her, breathless and almost panicked.",
"\"That was stupid. That was so stupid. I loved it.\""
]
},
"first_climax_inside_pussy": {
"text": [
"The first time you cum inside Sofia's pussy, she realizes it from the way your cock starts throbbing deep in her.",
"\"Wait, are you...\"",
"The first pulse hits before she finishes.",
"Your cock spills inside her cunt, filling her while her inner walls clench around every spurt.",
"Sofia gasps, hips pressing up, face stripped of every practiced expression.",
"\"Fuck. I can feel it.\"",
"You keep pulsing inside her, and her pussy tightens like it wants every last twitch.",
"When it is over, she stays close, breathing hard.",
"\"That was... wow. Okay. No clever line for that.\""
]
},
"first_climax_inside_ass": {
"text": [
"The first time you cum inside Sofia's ass, she is already shaking from the stretch.",
"Your cock is buried in her tight asshole when you warn her.",
"She grips whatever is under her and nods once, breath caught in her throat.",
"The first pulse makes her gasp.",
"You fill her ass with hot cum, cock jerking inside her while her body tightens around the feeling.",
"\"Fuck. I felt that.\"",
"Another spurt hits and her hips twitch back despite how careful the whole scene has been.",
"When it is over, Sofia stays still for a few seconds, breathing hard.",
"\"Okay. I need a second after that.\""
]
}
}
}
END_FIRST_TIME_DATA %//% FIRST_TIME_DATA
{
"girlId": "g6",
"girl": "Valerie King",
"readyVariable": "first007ready",
"notes": [],
"moments": {
"first_meeting": {
"text": [
"You first notice Valerie because people seem to lower their voices around her without being asked.",
"She stands with perfect posture, white braids resting over black lace, one hand holding a slim folder close to her chest.",
"Someone nearby says something vague and overconfident.",
"Valerie looks at them for one silent second.",
"\"That is almost a thought.\"",
"The conversation dies politely.",
"She turns to you next, amber eyes taking in the fact that you watched the correction instead of the dress.",
"\"You were listening.\"",
"You admit you were trying to figure out whether she is always that precise.",
"For the first time, her mouth almost smiles.",
"\"Only when people make imprecision expensive.\""
]
},
"first_phone_success": {
"text": [
"Valerie gives you her number after a pause long enough to make the choice visible.",
"She writes it in small, neat digits on the back of a small card, then slides it toward you with two fingers.",
"\"Text. Do not call unless something is actually on fire.\"",
"You ask if that happens often.",
"\"With artists? More than it should.\"",
"Her eyes drop to the card, then back to you.",
"\"Send me a detail you noticed. I would rather read that than a compliment.\""
]
},
"first_address_success": {
"text": [
"Valerie gives you her address like she is handing over something more fragile than a location.",
"The writing is clean, black ink on a torn corner of inventory paper.",
"\"The building door sticks. Pull before you push.\"",
"You ask if that is a warning or an invitation.",
"She looks at you for a second, then folds the paper once.",
"\"Both, if you are paying attention.\"",
"Her fingers brush yours when she gives it to you.",
"\"Do not make me regret the practical information.\""
]
},
"first_hug": {
"text": [
"The first hug with Valerie begins awkwardly because she clearly has to decide where her arms are allowed to go.",
"You step in slowly.",
"She does not move away.",
"Her hands settle at your back, light at first. When you don't pull away, her grip firms.",
"The fabric of her dress presses cool against your chest, but her breathing is warm near your throat.",
"\"This is less absurd than I expected.\"",
"She stays for one more breath.",
"\"Do not make a museum out of it.\""
]
},
"first_kiss_cheek": {
"text": [
"You kiss Valerie on the cheek, close to the black edge of her lipstick but not touching it.",
"She goes still.",
"Then her fingers rise to the place your mouth touched, not quite covering it.",
"\"That was... softer than your usual choices.\"",
"You ask if soft is bad.",
"Her eyes shift away for half a second.",
"\"No.\"",
"The answer is quiet enough to mean more than the word."
]
},
"first_dirty_whisper": {
"text": [
"You lean close enough that your voice stays under the nearest murmur.",
"You tell Valerie you keep thinking about her legs under that dark skirt, your hand on her knee, your mouth against her ear while her thighs stop behaving as elegantly as the rest of her.",
"Her gaze stays fixed just past you.",
"Her breathing does not.",
"\"That is a dangerous amount of attention to put on a detail.\"",
"You say you meant every word.",
"The fingers resting on her catalogue tighten slightly.",
"\"I know. That is why I heard it.\""
]
},
"first_massage_start": {
"text": [
"Valerie accepts the first massage as if agreeing to a restoration test on damaged paper.",
"\"Shoulders only, at first.\"",
"You start over the fabric, slow enough that the touch does not feel like an ambush.",
"Her posture stays perfect for almost a minute.",
"Then your thumb finds the stiff line near her neck and her breath slips.",
"\"There.\"",
"The word is small, almost annoyed by how honest it is.",
"You keep working the tension down until her head dips forward by a fraction."
]
},
"first_massage_orgasm": {
"text": [
"Valerie's first massage orgasm starts with her trying to keep her clothes, posture, and expression arranged in the same careful order.",
"You work her shoulders, then lower, thumbs pressing slow lines along her back until her breathing starts to lose its public calm.",
"When your hand settles near her hip, the long skirt shifts under your fingers.",
"Her thighs tense before she says anything.",
"\"Your hand is drifting.\"",
"You stop.",
"Valerie closes her eyes, then parts her knees by a small, deliberate inch.",
"\"I know.\"",
"Your hand slides along her thigh through the dark fabric, feeling the heat gather under all that perfect restraint.",
"By the time your fingers press between her legs, her panties are damp against her pussy.",
"She exhales sharply and looks away.",
"You rub her through the fabric first, slow and firm, until her thighs close around your hand and her hips make the next stroke larger.",
"When your fingers slip under her panties and find her clit, she stops speaking completely.",
"Her clit is swollen and slick under your fingertips, and the first tight circle makes her hand grip the edge of the seat.",
"\"Fuck.\"",
"You slide two fingers into her wet cunt, thumb still rubbing her clit, and feel her inner walls clamp down around you.",
"The sound she makes is low, broken, and nothing like the voice she uses in public.",
"You keep fingering her until her thighs shake under the skirt, cunt clenching harder with every stroke.",
"\"There. There.\"",
"The orgasm takes the rest of the sentence from her. Her hips jerk into your hand, pussy pulsing around your fingers while she moans through clenched teeth and fails to keep the elegance on her face.",
"Afterward, she stays very still, wet and flushed and breathing like she has been caught in bad lighting.",
"\"Give me a moment before I try to look composed again.\""
]
},
"first_meal": {
"cookingVariants": {
"threshold": 45,
"low": [
"You cook for Valerie, and she regards the plate with the quiet concern usually reserved for damaged canvases.",
"\"This has ambition.\"",
"You ask if that is good.",
"\"Not always.\"",
"She takes a careful bite, pauses, then takes another.",
"\"It is not elegant, but it is sincere. I have seen worse openings.\""
],
"high": [
"You cook well enough that Valerie goes quiet after the first bite.",
"She looks at the plate, then at you, like she has to revise an assumption.",
"\"Good. You understood restraint.\"",
"The meal becomes a conversation about texture, timing, bitter notes, and the difference between simple and unfinished.",
"Valerie takes another bite, slower this time.",
"\"I would serve this with better lighting.\"",
"A pause.",
"\"That is a compliment.\""
]
}
},
"first_kiss": {
"text": [
"The first real kiss with Valerie begins with a silence that feels almost formal.",
"Then your mouth touches hers and formality becomes less useful.",
"Her lips are cool for the first second, black lipstick soft against your mouth.",
"When you kiss her deeper, her hand tightens at your sleeve.",
"She makes a small sound and immediately tries to swallow it.",
"You do not let the kiss become a joke.",
"That is what makes her lean in.",
"\"Again,\" she says, barely off your mouth.",
"You kiss her again, and this time her lips part sooner."
]
},
"first_handjob": {
"text": [
"Valerie is very still the first time her hand closes around your cock.",
"Her grip is light, almost formal, until your shaft throbs against her palm.",
"\"I felt that.\"",
"The words come out quieter than she means them to.",
"She strokes once, then again, watching your face with more attention than confidence.",
"Your reaction gives her enough to keep going.",
"Her hand grows firmer by degrees, turning the awkward first contact into something slow and deliberate."
]
},
"first_blowjob": {
"text": [
"Valerie kneels with more stillness than confidence the first time her hand wraps around your cock.",
"She looks at it for a moment, studying the swollen head, the precum at the tip, the way your shaft twitches when her thumb moves.",
"\"You are very easy to read from here.\"",
"The line is dry, but her voice is lower than usual.",
"She leans in and licks the head of your cock, slow enough to taste you.",
"Her eyes close for half a second.",
"Then her lips part and take you into her mouth.",
"The first inches are careful. Her tongue presses under your shaft, her hand stroking what her mouth does not take yet.",
"Your cock throbs against her tongue and she glances up, cheeks faintly flushed.",
"She pulls back with wet lips, breathing through her nose.",
"\"Do not move too much.\"",
"Then she takes your cock back into her mouth, less composed when your groan makes her fingers tighten around your shaft."
]
},
"first_cunnilingus": {
"text": [
"Valerie lies back like she still believes the right posture can protect her from how exposed this is.",
"Her skirt is gathered carefully, her thighs pale and tense on either side of your shoulders.",
"You kiss the inside of one knee, then higher along her thigh.",
"That is where she reacts first: not at her pussy, but at the attention moving up her leg.",
"\"Oh.\"",
"By the time your mouth reaches her wet slit, her breathing has already changed.",
"You lick her pussy slowly, tongue dragging up through her folds before settling on her clit.",
"Valerie's thighs tighten around your head.",
"\"Fuck.\"",
"You keep licking, mouth warm against her cunt, tongue circling her swollen clit until her hips start to lift in small, helpless movements.",
"Her hand finds your hair and stays there, not pushing, just holding on while the quiet starts breaking out of her."
]
},
"first_facesitting": {
"text": [
"Valerie climbing over your face looks like a portrait trying not to admit it is becoming obscene.",
"Her skirt is lifted just enough, her thighs on either side of your head, her wet pussy hovering above your mouth.",
"\"This is less graceful than I imagined.\"",
"Then your tongue touches her slit and grace stops mattering.",
"Her fingers grab for anything stable.",
"You lick her pussy from below, tongue spreading her folds and finding her clit while her thighs tremble against your cheeks.",
"Valerie tries to stay lifted for a few seconds.",
"Then pleasure makes her sink lower.",
"\"Oh, fuck.\"",
"Her hips move once against your mouth, and the second time she does not pretend it was an accident."
]
},
"first_beg_facesit_success": {
"text": [
"You beg Valerie to sit on your face, and the request makes her look away before it makes her answer.",
"\"That is a very direct use for a mouth.\"",
"You say you want it.",
"Her thighs press together under the long skirt.",
"\"Yes. I heard that part.\"",
"She climbs over you, gathering her skirt, wet pussy lowering toward your mouth with less poise than she wants.",
"The first lick makes her inhale hard.",
"\"Oh.\"",
"You lick her clit again, and her fingers curl against the surface beneath her.",
"\"Do that again.\""
]
},
"first_69": {
"text": [
"Sixty-nine changes Valerie faster than either of you expect.",
"She can handle being looked at. She can handle wanting. What unsettles her is having both of you exposed at once, mouth and body answering each other with no clean place to hide.",
"She positions herself carefully over you, dark skirt pushed up, thighs framing your face while her mouth hovers above your cock.",
"Your breath hits her wet pussy at the same moment her fingers wrap around your shaft.",
"She looks back once, and the sight of your face between her legs makes her lose the first thing she meant to say.",
"Then your tongue drags up her slit and her lips close around your cock.",
"The first sound she makes vibrates around the head of your cock.",
"You lick her clit again, slow and firm, and her mouth falters, wet lips sliding off you for one broken breath.",
"\"Fuck.\"",
"She takes you back into her mouth, tongue pressing under your shaft while her hips start moving against your tongue.",
"Your mouth works her pussy, licking through her wet folds and circling her swollen clit, and every time she moans around your cock you feel it in the shaft.",
"Valerie tries to keep a rhythm. It falls apart when your tongue stays on her clit long enough for her thighs to shake.",
"She pulls off again, mouth wet, voice barely controlled.",
"\"I cannot focus when you do that.\"",
"You do it again.",
"She takes you back onto her tongue, hips pressing harder against your mouth, dignity gone where pleasure can reach it."
]
},
"first_rub_pussy_fabric_public": {
"text": [
"The first time you rub Valerie's pussy through fabric in public, she does not look at your hand.",
"She looks at the room.",
"That is how you know she felt it.",
"Your fingers press against her slit through the layers of skirt and panties, small enough to hide, firm enough to matter.",
"Her posture remains perfect for three seconds.",
"Then her knee shifts.",
"You rub her slowly, feeling heat build under the fabric until dampness starts to gather against your fingertips.",
"\"That is unwise.\"",
"Her voice is quiet and thin at the edges.",
"You move your fingers again and her thighs tighten around your hand.",
"\"Fuck.\"",
"The word is almost silent.",
"\"\""
]
},
"first_fingering": {
"text": [
"The first time your fingers reach Valerie's bare pussy, she watches your face like she is trying to survive the attention by understanding it.",
"Her thighs are already tense, legs parted just enough for your hand.",
"You rub her clit first, and the reaction is immediate: a sharp inhale, a small lift of her hips, her fingers tightening in dark fabric.",
"She is wet when your first finger slides into her cunt.",
"\"Oh.\"",
"Her inner walls clench around you, tight and slick, and her eyes close before she can stop them.",
"You move slowly, thumb circling her clit while your finger works inside her.",
"When you add a second finger, Valerie's hand catches your wrist.",
"Not pulling away.",
"Holding on.",
"\"There.\"",
"You curl your fingers and her legs tremble, pale thighs flexing as her pussy tightens around you.",
"\"Again. Fuck, again.\""
]
},
"first_analingus": {
"text": [
"Valerie looks back quickly when your mouth moves lower than her pussy.",
"\"That is not where I expected your attention to go.\"",
"She says it dryly, but her voice has already lost some of its clean edge.",
"You kiss the back of her thigh, then lower, hands spreading her carefully.",
"The first touch of your tongue to her asshole makes her go completely still.",
"\"Oh.\"",
"You lick her again, slow and filthy, tongue circling the tight little hole while her fingers grip the surface beneath her.",
"Her anal sensitivity is not high enough to make her melt instantly, but the intimacy of it gets under her skin.",
"\"That is... difficult to ignore.\"",
"You do it again and her hips shift by a fraction.",
"\"Slowly.\""
]
},
"first_ask_sex_success": {
"text": [
"She studies your face long enough to decide the want is real.",
"\"Yes.\"",
"The word is quiet.",
"Then she steps closer and takes your hand, placing it at her waist over the dark fabric she loves so much.",
"\"Do not rush me out of my clothes.\"",
"A pause.",
"\"But yes. I want you.\""
]
},
"first_beg_sex_success": {
"text": [
"You beg Valerie for sex, and the rawness of it affects her more than a polished demand would have.",
"Her eyes drop to your mouth.",
"\"You sound ruined already.\"",
"It could have been cruel. It is not.",
"You say you want her.",
"Her fingers tighten around yours.",
"\"Good.\"",
"The word comes out softer than expected.",
"\"Come here.\""
]
},
"first_demand_sex_success": {
"text": [
"You demand sex from Valerie, and she gives you a long, quiet look.",
"With old Valerie, that look might have been a verdict.",
"She studies your face, quieter than usual, deciding whether your directness reaches her.",
"You say it again, lower, making it about her and not just the act.",
"Her breath changes.",
"\"Better.\"",
"She steps close enough for her skirt to brush your leg.",
"\"Use your hands carefully. I am listening.\""
]
},
"first_vaginal_intro": {
"text": [
"When your cock presses against Valerie's wet slit for the first time, she loses the careful line of her posture.",
"Her clothes are still partly on, dark fabric gathered around her hips, thighs exposed more than she would ever allow by accident.",
"You push forward slowly, the head of your cock spreading her pussy open.",
"Valerie's fingers grip your arm.",
"\"Oh.\"",
"The first inch slides in, tight and slick, and her cunt clenches hard around you.",
"You give her more by degrees, feeling her inner walls stretch around your cock while her breathing turns uneven.",
"\"Fuck. I can feel...\"",
"The rest disappears when you sink deeper.",
"Her thighs tighten around you.",
"\"Keep going.\""
]
},
"first_anal_intro": {
"text": [
"Valerie's first anal starts with caution, not fantasy.",
"She is tense enough that you slow everything down: more lube, more silence, more waiting for her body to answer honestly.",
"You press the head of your cock against her tight asshole.",
"She grips the surface beneath her, pale knuckles tense against dark fabric.",
"\"Slow.\"",
"You push in carefully, feeling her ass resist around the head.",
"The first stretch pulls a sharp breath out of her.",
"\"Fuck.\"",
"You hold still, only partly inside, until her breathing steadies.",
"She swallows and nods once.",
"\"A little more. Not much.\""
]
},
"first_position_missionary": {
"text": [
"Missionary with Valerie feels almost too direct for someone who uses stillness as a shield.",
"Your cock slides into her wet pussy while she watches your face from under pale lashes.",
"The first thrust makes her lips part.",
"The second makes her eyes close despite the way she tries to keep them open.",
"\"I can see too much from here.\"",
"You ask if that is bad.",
"She answers by pulling you closer.",
"Her cunt tightens around your cock when your mouth nears hers.",
"\"No.\""
]
},
"first_position_cowgirl": {
"text": [
"Cowgirl is not Valerie's natural pose, but she tries it with quiet stubbornness.",
"She lowers herself onto your cock, skirt gathered high, pale thighs tense as her pussy takes you inch by inch.",
"Her hands brace on your chest.",
"For a few seconds she looks composed.",
"Then the fullness hits and her breath catches.",
"\"Oh.\"",
"She moves her hips once, testing the position, and her cunt clenches when the angle catches.",
"\"That is... more visible than I expected.\"",
"She does it again anyway."
]
},
"first_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl lets Valerie face away, which helps until she realizes how much of her body you can see.",
"She sinks down onto your cock with her back to you, dark fabric bunched at her waist, pale thighs spread around your hips.",
"Her pussy takes you slowly, wet and tight, while her hands brace on your legs.",
"You see her shoulders tense when your gaze travels down her back.",
"\"I know you are looking.\"",
"Her voice is low, not angry.",
"She starts moving before you can answer.",
"Every roll of her hips pulls your cock through her cunt and makes her thighs tighten.",
"\"Do not tell me what I look like,\" she whispers.",
"A breath.",
"\"Just keep watching.\""
]
},
"first_position_doggy": {
"text": [
"Doggy affects Valerie because it makes the gaze impossible to manage.",
"She braces herself, skirt pushed up, thighs pale under the dark fabric as your cock presses against her wet pussy from behind.",
"\"This is indecently visual.\"",
"The line almost holds.",
"Then you push into her, and her voice stops being dry.",
"Her cunt stretches around your cock, tight and wet, and her fingers grip the surface beneath her.",
"\"Fuck.\"",
"You thrust again and her back arches before she can make it look deliberate.",
"Her thighs tremble, legs too sensitive to hide what the position is doing to her.",
"\"There. Again.\""
]
},
"first_position_wall": {
"text": [
"Against the wall, Valerie looks quieter than you expected, the lifted edge of her skirt ruining the last of her distance.",
"She looks exposed, half-framed by her own clothes, dark skirt lifted just enough for your cock to line up with her wet pussy.",
"You push inside her slowly.",
"Her hand catches your shoulder, black nails pressing through fabric.",
"\"Oh.\"",
"The wall holds her still while your thrusts make her composure slip one breath at a time.",
"Her cunt clenches around you when your hips press closer.",
"\"That is good,\" she says, almost surprised by the plainness of it.",
"Then the next thrust takes the rest of the thought."
]
},
"first_anal_position_missionary": {
"text": [
"Missionary anal gives Valerie nowhere to hide from your face or the stretch.",
"You press the head of your cock against her asshole while her hands grip your shoulders.",
"\"Slow.\"",
"You push in carefully, feeling her tight ass resist and then give around the head.",
"The pressure makes her breath catch hard.",
"\"Fuck.\"",
"You hold still, only partly inside her ass, while she adjusts to the fullness.",
"Her legs shift around you.",
"\"A little more.\"",
"You give her another inch and watch the sentence leave her face."
]
},
"first_anal_position_cowgirl": {
"text": [
"Cowgirl anal makes Valerie look calmer than her body actually is.",
"She lowers herself onto your cock with slow, deliberate movements, tight asshole stretching around the head while her thighs tense hard.",
"Her hands press into your chest.",
"\"I need a second.\"",
"You stay still.",
"She breathes, pale hair falling forward as she takes another fraction of you.",
"\"Fuck.\"",
"Her ass clenches around your cock, then gives just enough for her to sink lower.",
"\"That is a lot.\""
]
},
"first_anal_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl anal leaves Valerie facing away while you watch her ass take your cock.",
"She is not built around being stared at from behind the way Sofia is, but the quiet attention still gets under her skin.",
"Her tight asshole stretches slowly around the head, dark skirt gathered high, pale thighs shaking around your hips.",
"\"Do not narrate it.\"",
"You do not.",
"She takes another inch and moans anyway.",
"The view is filthy and intimate: her ass opening around your cock, her back tense, her hands gripping your legs.",
"\"Fuck,\" she whispers. \"I know.\""
]
},
"first_anal_position_doggy": {
"text": [
"Doggy anal makes Valerie quiet in a way that feels more exposed than words would.",
"You press your cock to her tight asshole from behind and start with slow pressure.",
"Her fingers curl against the surface beneath her.",
"\"Careful.\"",
"You push in by inches, stretching her ass open while her thighs tremble under the dark edge of her skirt.",
"The first real give pulls a broken sound from her throat.",
"\"Fuck. Wait.\"",
"You stop.",
"A few breaths later, her hips shift back by a tiny amount.",
"\"Okay. Slowly.\""
]
},
"first_anal_position_wall": {
"text": [
"Wall anal makes Valerie tense against every point of contact: the wall, your hands, your cock pressing against her tight asshole.",
"You hold her steady as your cock presses against her tight asshole from behind.",
"She breathes out through her nose.",
"\"Slow.\"",
"You start pushing in, careful and slick, feeling her ass resist around the head.",
"Her hand spreads against the wall when the stretch becomes real.",
"\"Oh. Fuck.\"",
"You hold her there, half open around you, until the tremor in her legs eases.",
"\"A little more,\" she whispers."
]
},
"first_sex": {
"text": [
"The first time your cock sinks fully into Valerie's pussy, her careful expression disappears by inches.",
"She is still partly dressed, black fabric gathered, pale thighs spread, lipstick dark against a mouth that has stopped shaping clever sentences.",
"Her cunt is wet and tight around you, clenching with every slow inch.",
"\"Fuck.\"",
"You start moving and her fingers dig into you.",
"The first thrust is careful. The second is deeper. By the third, her hips are answering.",
"Her legs shake when your cock drags through her inner walls and presses deep enough to make her breath break.",
"\"There.\"",
"You fuck her slowly, close enough to see the exact moment she stops trying to look composed.",
"\"Do not stop there.\""
]
},
"first_anal": {
"text": [
"Valerie's first anal starts with her fingers twisting against the surface beneath her and your cock slick against her tight asshole.",
"Your cock presses into her tight asshole with slow pressure, lube slick between you, her body resisting until the first inch finally gives.",
"Her fingers twist against the surface beneath her.",
"\"Fuck.\"",
"You hold still while her ass clenches around the head of your cock.",
"She breathes through it, pale thighs tense under the lifted fabric of her skirt.",
"When you slide deeper, her voice thins.",
"\"That is enough. Wait.\"",
"You wait.",
"Her hips move back by a fraction before she can turn it into a decision.",
"\"A little more.\""
]
},
"first_demand_anal_success": {
"text": [
"You demand anal from Valerie, and the bluntness makes her look at you very quietly.",
"\"That is a crude sentence for a complicated request.\"",
"You say it again, slower, making the want clear without pretending the act is small.",
"Her eyes drop, then return to yours.",
"\"I am not saying yes because you made it sound pretty.\"",
"A pause.",
"\"I am saying yes because I am curious.\""
]
},
"first_undress_top_off": {
"text": [
"Valerie removing her top feels less like undressing and more like letting someone touch a locked cabinet.",
"She does it slowly, not to tease, but because every fastening seems to mean something to her.",
"The black fabric comes away and she watches your face with guarded attention.",
"\"Careful with it.\"",
"The question hangs there, half about the clothing and half about the step she just took.",
"She folds the fabric as carefully as if the answer were hidden in it.",
"Her shoulders are bare now, pale against the remaining dark layers.",
"She looks more exposed than the amount of skin should explain."
]
},
"first_undress_bra_off": {
"text": [
"Valerie hesitates before removing her bra.",
"The layer matters because Valerie pauses with the clasp open, suddenly more exposed than the skin alone explains.",
"When the bra falls, her tits are bare, nipples tightening in the air.",
"She does not cover herself.",
"She also does not quite breathe normally.",
"\"Do not look like you are cataloging me.\"",
"You touch her carefully instead.",
"Her eyes lower for a second.",
"\"Better.\""
]
},
"first_undress_bottom_off": {
"text": [
"Valerie's bottoms are harder to remove than the top because the long dark skirt is part of how she holds the world at a distance.",
"She gathers the fabric in both hands, then stops.",
"\"I like this skirt.\"",
"You say you know.",
"That helps more than a compliment would have.",
"She slides it down slowly, revealing pale legs that make everything feel much quieter.",
"Your eyes linger at her knees, calves, ankles.",
"Valerie notices all of it.",
"\"That,\" she says softly, \"is the dangerous way to look.\""
]
},
"first_undress_panties_off": {
"text": [
"Valerie's panties come off last, and even after every other layer, this one makes her pause.",
"Undressing her was never going to be casual.",
"She slips them down and exposes her wet pussy, slit glistening between pale thighs that have already given away too much.",
"For a second, she looks less arranged and more like a woman trying to stand inside her own heartbeat.",
"\"I am aware.\"",
"You have not said anything.",
"Her mouth tightens, almost a smile.",
"\"You were about to.\"",
"Her thighs shift, nervous and aroused.",
"\"Come here before I become articulate again.\""
]
},
"first_massage_undress_top_off": {
"text": [
"During the massage, Valerie removes her top only after your hands have stayed patient long enough to make the decision feel safe.",
"The fabric leaves her shoulders, and she folds it automatically before setting it aside.",
"\"Habit.\"",
"You return your hands to her bare upper back.",
"The first slow press makes her eyes close.",
"Without the layer, every small reaction is easier to see.",
"She knows that too.",
"\"That is rather unfair.\""
]
},
"first_massage_undress_bra_off": {
"text": [
"Valerie takes her bra off during the massage with the careful displeasure of someone letting the air become too honest.",
"Her bare tits rise and fall as she settles back under your hands.",
"You do not rush toward them.",
"That is why her breathing softens.",
"Your thumbs work along her back, then near the side of her breast.",
"Her nipple tightens before she can hide the reaction.",
"\"I noticed that,\" she says.",
"Her voice is quieter.",
"\"So did you.\""
]
},
"first_massage_undress_bottom_off": {
"text": [
"Valerie removing her skirt during the massage changes the air between you.",
"She keeps her face turned away while the fabric slides down, revealing pale legs and the careful tension in her thighs.",
"You go back to her lower back first, then her hips, then the long line of one thigh.",
"Her breath catches there first.",
"Your hand moves over her leg with slow pressure, not rushing to her pussy, and her breath catches harder than expected.",
"\"Oh.\"",
"Her knees part by a small amount.",
"\"That is... yes. There.\""
]
},
"first_massage_undress_panties_off": {
"text": [
"When Valerie slips her panties off during the massage, she folds them before she remembers that dignity has already lost this argument.",
"Her pussy is wet when she settles back within reach, and the contrast between the neat little fold of fabric and the slick heat between her thighs is almost obscene.",
"You rest your hand on her leg first.",
"She trembles at the touch before your fingers get anywhere explicit.",
"\"My legs,\" she says, embarrassed by how quickly the words came out.",
"You stroke up her thigh, closer and closer to her wet slit.",
"Her knees open.",
"\"Yes. Then... touch me.\""
]
},
"first_slide_inside_panties_public": {
"text": [
"Your fingers slide inside Valerie's panties in public, under layers chosen specifically to keep the world at a distance.",
"The first touch of your fingertips against her wet pussy makes her posture go still.",
"Her eyes remain on the painting in front of you.",
"\"No one is looking.\"",
"She says it like a fact she badly needs to be true.",
"You rub her clit in tiny hidden circles, feeling slickness gather under your fingers.",
"Her thighs tighten, trapping your hand against her wet slit.",
"\"Fuck.\"",
"The word is nearly silent.",
"You keep the strokes small, and her breath starts to break under the gallery hush.",
"\"I can feel how wet I am.\""
]
},
"first_deep_kiss": {
"text": [
"The first deep kiss with Valerie begins with black lipstick and restraint.",
"Then your tongue touches hers and restraint becomes much less convincing.",
"Her hand closes around your sleeve, fingers tight in the fabric.",
"You kiss her deeper, and she answers with a soft, involuntary sound that makes her still for half a second.",
"You do not tease her for it.",
"That is why she keeps going.",
"Her mouth opens more fully under yours, warm and wet and less careful with every breath.",
"\"Again,\" she whispers.",
"This time, she reaches for you first."
]
},
"first_invite_photoshoot": {
"text": [
"Valerie looks at the lamp beside the wall.",
"\"Turn that off.\"",
"You do.",
"She checks the wall again.",
"\"Better.\"",
"She puts her gloves on the table and steps into the light.",
"\"One picture first. Then show me.\""
]
},
"first_photo_hand_between_legs": {
"text": [
"You lower the camera. Valerie sees your hand at her thigh.",
"\"Put it down properly.\"",
"You set it on the table.",
"Your hand goes between her legs.",
"She presses her lips together when you rub her clit.",
"\"Not so fast.\"",
"You ease up, then push a finger into her pussy.",
"Valerie catches your wrist, then guides it once.",
"\"There. Keep it there.\""
]
},
"first_invite_room": {
"text": [
"The first time Valerie comes to your room, she takes it in without pretending not to judge it.",
"\"You cleaned.\"",
"You say yes.",
"\"Good. Effort is not taste, but it is at least evidence.\"",
"She removes her gloves slowly, one finger at a time, and sets them somewhere safe.",
"That small act feels more intimate than it should.",
"\"I am staying,\" she says, before you ask.",
"A pause.",
"\"For a while.\""
]
},
"first_private_movie": {
"text": [
"The first private movie with Valerie survives about twenty minutes as an actual movie.",
"She notices the lighting, the framing, the costume choices, and one piece of dialogue she describes as unforgivable.",
"Then your hand rests on her knee.",
"The critique stops.",
"Her leg tenses under your palm.",
"\"That is not the film.\"",
"You say no.",
"Your fingers move slowly along her thigh, over the dark fabric.",
"Valerie's eyes remain on the screen, but her breathing is suddenly much easier to hear.",
"\"Continue.\"",
"The word leaves her softer than she meant it to."
]
},
"first_invite_gallery": {
"text": [
"Inviting Valerie to the gallery feels strange because the room is hers before it is yours.",
"Still, she lets you walk beside her after closing, when the lights are lower and the floor no longer belongs to donors.",
"\"This is better without the voices.\"",
"She stops in front of a portrait and adjusts nothing for once.",
"You ask what she sees.",
"\"Someone trying very hard not to ask for help.\"",
"Then she glances at you, almost amused.",
"\"Do not look so pleased. Noticing things is not your private talent.\""
]
},
"first_invite_workout": {
"text": [
"The first workout with Valerie is a quiet disaster of incompatible aesthetics.",
"She looks at the equipment like it has been arranged by a hostile culture.",
"\"I own shoes less threatening than this bench.\"",
"Still, she tries.",
"The first exercise makes her composure wobble, the second makes her hair fall forward, and the third makes her laugh once under her breath.",
"\"I dislike how honest this is.\"",
"You help correct her stance.",
"She accepts the help, then looks away when your hand briefly steadies her leg.",
"\"That part was not terrible.\""
]
},
"first_public_handjob": {
"text": [
"The first time Valerie wraps her hand around your cock in public, it happens under enough fabric and stillness to make the risk feel unreal.",
"Her fingers close around your shaft carefully, hidden by posture, shadow, and the room's polite disinterest.",
"\"Do not move suddenly.\"",
"Her grip is light at first, then firmer when she feels you harden in her hand.",
"Your cock twitches against her palm.",
"Her face remains composed.",
"Her breathing does not.",
"\"I felt that.\"",
"She strokes you slowly, thumb brushing the head of your cock beneath the cover.",
"The hidden filth of it makes her voice almost disappear.",
"\"This is obscene.\"",
"Her hand keeps moving."
]
},
"first_footjob": {
"text": [
"The first footjob with Valerie is not really about feet at all.",
"It is about her legs, and she knows it before you say anything.",
"She sits with one leg crossed, long skirt drawn just high enough to show pale calf, ankle, the slow flex of her foot as it presses against your cock.",
"\"You are looking at my legs, not my foot.\"",
"You do not deny it.",
"That is what makes her breath catch.",
"She drags her foot along your shaft, awkward at first, then slower when your reaction tells her what works.",
"Her calf tenses. Her thigh shifts under the fabric.",
"The whole scene is inefficient and extremely focused.",
"\"Oh.\"",
"She presses again, watching your cock move against her foot while your eyes keep returning to her legs.",
"\"That is the part you like.\"",
"A pause.",
"\"I can use that.\""
]
},
"first_titfuck": {
"text": [
"The first titfuck with Valerie is not one of her natural weaknesses.",
"Her breast sensitivity is low, and she seems more interested in your expression than the pressure against her own skin.",
"Still, she presses her tits around your cock, pale skin warm around the shaft.",
"Your cock slides between them, head pushing through with each thrust.",
"Valerie watches the way your face changes.",
"\"So this is mostly visual.\"",
"You thrust again, and a flicker of heat reaches her when your cock brushes close to one nipple.",
"\"Mm.\"",
"The sound is too soft to be deliberate.",
"She tightens her hands around her breasts anyway.",
"\"I can appreciate visual.\""
]
},
"first_climax_body": {
"text": [
"The first time you cum on Valerie's body, she watches your cock like she is trying not to blink through the important part.",
"Your shaft jerks in your hand and hot cum streaks across her pale stomach.",
"Her breath catches when the first line hits her skin.",
"\"Oh.\"",
"Another pulse lands lower, stark against her body and the dark fabric still gathered around her.",
"She looks down at the mess, then up at your face.",
"Her public voice is gone.",
"\"I wanted to see that happen.\""
]
},
"first_climax_back": {
"text": [
"The first time you cum on Valerie's back, she is angled away just enough for the sight to matter.",
"Your cock pulses, streaking hot cum across pale skin and the edge of dark fabric.",
"Her shoulders tense when the first streak lands.",
"\"Fuck.\"",
"Another spurt hits lower, and she stays still, feeling it mark her.",
"The image is obscene in a quiet way: white hair, black lace, cum on her skin, her breath caught between dignity and heat.",
"When she looks back, her face is flushed.",
"\"That is going to be difficult to forget.\""
]
},
"first_climax_boobs": {
"text": [
"The first time you cum on Valerie's tits, she seems almost more affected by your face than the heat on her skin.",
"Your cock jerks, spilling cum over her bare breasts and across one nipple.",
"She inhales when it hits, looking down as the streaks slide over pale skin.",
"\"Messy.\"",
"Another pulse lands between her tits.",
"Her voice lowers.",
"\"Very difficult to arrange elegantly.\"",
"Then she looks back at you and the dryness almost breaks.",
"\"Good.\""
]
},
"first_climax_face": {
"text": [
"The first time you cum on Valerie's face, she keeps her eyes open until the first streak hits her cheek.",
"Her breath catches, black lipstick parted, white hair framing the shock of hot cum on pale skin.",
"Your cock pulses again, another spurt landing near her mouth.",
"For once, she has no immediate sentence ready.",
"She touches the edge of the mess with two fingers.",
"\"Oh.\"",
"The sound is small and very real.",
"A final pulse marks her chin.",
"Valerie looks up at you through the ruined elegance of it.",
"\"That was... not subtle.\""
]
},
"first_climax_mouth": {
"text": [
"The first time Valerie lets you cum in her mouth, it is clearly not because swallowing is one of her favorite things.",
"She chooses it anyway, lips around your cock, one hand steady on your shaft.",
"You warn her when you get close.",
"Her eyes flick up.",
"The first pulse hits her tongue and her grip tightens.",
"You cum into her mouth in thick spurts while she tries to keep the act neat and immediately fails.",
"Some of your load slips to the corner of her black lipstick.",
"She swallows once, slow and visible, throat working around the cum.",
"Then she pulls back before the last twitch can make the mess worse.",
"Cum shines at the corner of Valerie's lips when she looks up.",
"\"I do not think I am elegant at this.\"",
"A breath.",
"\"That may be the point.\""
]
},
"first_climax_public_hand": {
"text": [
"The first time you cum in Valerie's hand in public, the hidden nature of it makes her almost too still.",
"Her fingers stroke your cock under cover, small movements, quiet room, the risk buried under etiquette.",
"\"You are close.\"",
"It is not a question.",
"Your cock pulses in her hand, hot cum spilling into her palm while her face remains turned toward the art like nothing obscene is happening.",
"Her fingers close around your load.",
"A breath slips through her nose.",
"\"Fuck.\"",
"The word is silent enough for only you.",
"She keeps the mess hidden, cheeks faintly flushed.",
"\"We are leaving soon.\""
]
},
"first_climax_inside_pussy": {
"text": [
"The first time you cum inside Valerie's pussy, she realizes it from the way your cock starts throbbing deep in her cunt.",
"\"Inside?\"",
"The word comes out small, breathless, caught between surprise and want.",
"Then the first pulse hits and her thighs tighten around you.",
"Your cock spills inside her, filling her wet pussy while her inner walls clench around every spurt.",
"Valerie gasps, fingers digging into your back as the heat of your cum spreads inside her.",
"\"Fuck. I can feel it.\"",
"You keep pulsing, buried deep, and her cunt holds you like her body wants the last twitch even if her face cannot admit it gracefully.",
"When it fades, she does not let go immediately.",
"\"Wait.\"",
"A shaky breath.",
"\"Just a moment.\""
]
},
"first_climax_inside_ass": {
"text": [
"The first time you cum inside Valerie's ass, the scene is already raw from how carefully her body had to take you.",
"Your cock is buried in her tight asshole when you warn her.",
"She grips the sheet, breath caught.",
"The first pulse makes her whole body tense.",
"You fill her ass with hot cum, cock jerking inside her while the tight ring of muscle clenches around every spurt.",
"\"Fuck.\"",
"Her voice breaks on the word.",
"Another pulse hits and her thighs shake, dark fabric gathered uselessly around all that ruined composure.",
"When it is over, she stays still, breathing hard.",
"\"Do not move yet.\"",
"This time it sounds less like control and more like she needs the world to stop tilting."
]
}
}
}
END_FIRST_TIME_DATA %//% FIRST_TIME_DATA
{
"girlId": "g7",
"girl": "Hazel Mercer",
"readyVariable": "first008ready",
"notes": [],
"moments": {
"first_meeting": {
"text": [
"You first meet Hazel when she steps aside too quickly and nearly drops the things in her arms.",
"She catches them against her sweater with a tiny panicked sound, then looks immediately embarrassed that anyone saw.",
"\"Sorry. I have it.\"",
"You help anyway.",
"Hazel looks at your hands, then up at your face, cheeks already warm.",
"\"Thank you. I probably did not have it.\"",
"She gives a small nervous laugh and tucks a loose strand of auburn hair behind her ear.",
"\"I am Hazel. I mostly try to be useful and not drop things.\""
]
},
"first_phone_success": {
"text": [
"Hazel gives you her number like she is afraid the phone might judge her for it.",
"She types it in carefully, checks it twice, then hesitates with her thumb hovering over the contact name.",
"\"You can text me. I would like that.\"",
"You say you want to.",
"That makes her smile too quickly, and she tries to hide it by looking down.",
"\"Okay. Good. I would like that.\"",
"A pause.",
"\"I might answer fast. That does not mean I was waiting. Even if I was.\""
]
},
"first_address_success": {
"text": [
"Hazel gives you her address after looking nervous about it for long enough that you almost tell her she does not have to.",
"\"It's not fancy.\"",
"You say that is not what you asked.",
"She nods, relieved by the plain answer.",
"\"Right. Sorry.\"",
"She writes it down in careful, rounded letters and adds a small note about the entrance.",
"\"Text first. I want you there, I just need a minute to stop panic-cleaning.\""
]
},
"first_hug": {
"text": [
"The first hug with Hazel starts with her arms half-raised and uncertain.",
"You step closer slowly enough for her to choose the rest.",
"She does.",
"Her body fits against yours softly, sweater warm under your hands, cheek near your shoulder.",
"\"Oh.\"",
"It slips out of her before she can make it smaller.",
"Her fingers curl lightly into the back of your shirt.",
"\"I just... that felt really nice.\"",
"She stays there, nervous and happy, like leaving too quickly would be worse than admitting she wanted it."
]
},
"first_kiss_cheek": {
"text": [
"You kiss Hazel on the cheek, and her whole face goes pink before she manages to speak.",
"\"Oh. That was...\"",
"She touches the spot with her fingertips.",
"\"I forgot the rest of the sentence.\"",
"You ask if it was okay.",
"Hazel nods fast.",
"\"Yes. Very okay. Too okay. I mean, not too. Just... yes.\""
]
},
"first_dirty_whisper": {
"text": [
"You lean close and tell Hazel what you want, low enough that nobody else can hear.",
"Your hand on her waist. Her back against the wall. Her mouth open while she tries to be quiet and fails.",
"Hazel stops breathing for a second.",
"Her eyes lower to your chest because looking at your face is suddenly too much.",
"\"I... I pictured that.\"",
"Her voice is barely there.",
"You ask if she wants you to stop saying things like that.",
"She shakes her head immediately, cheeks burning.",
"\"No. Please do not stop.\""
]
},
"first_massage_start": {
"text": [
"Hazel accepts the first massage because you make it sound like help, not pressure.",
"\"My shoulders do get kind of bad after work.\"",
"She sits carefully, hands folded in her lap like she needs somewhere safe to put them.",
"You start over her sweater, slow pressure at the base of her neck.",
"Her first exhale is shaky.",
"\"Oh, that's good.\"",
"Then she winces at how needy it sounded.",
"\"You can keep going. I would like that.\""
]
},
"first_massage_orgasm": {
"text": [
"Hazel's first massage orgasm starts because she keeps relaxing into your hands until she forgets to be afraid of wanting more.",
"You work her shoulders first, then her back, then the soft line of her hips through her clothes.",
"Her breathing keeps changing before her words do.",
"When your hand settles near her thigh, she looks down at it, lips parted.",
"\"Is this okay?\"",
"You ask her if it feels okay.",
"Hazel nods, nervous and almost ashamed of how fast she answers.",
"\"Yes. It feels really okay.\"",
"Your fingers press between her legs through the fabric, and her thighs close around your hand on instinct.",
"She whispers your name like she did not mean to.",
"You rub her pussy through her clothes, slow and steady, until heat and dampness gather under your fingertips.",
"\"I am getting wet. I know you can feel it.\"",
"Your fingers slip under her panties and find her clit slick and swollen.",
"Hazel makes a small broken sound.",
"You rub her clit in gentle circles, then slide one finger into her wet cunt.",
"Her hips lift into your hand before she can apologize for it.",
"\"Oh. Oh, please.\"",
"You add a second finger when her body starts asking for it, thumb still working her clit while her pussy clenches around you.",
"The orgasm catches her mid-breath. Her thighs shake around your wrist, cunt pulsing around your fingers, face hidden while she moans softly into her sleeve.",
"You keep your hand there until the last little clench fades.",
"Hazel stays folded forward, breathing hard.",
"\"I did not know I could do that from being touched like that.\"",
"A tiny pause.",
"\"I liked it. A lot.\""
]
},
"first_meal": {
"cookingVariants": {
"threshold": 45,
"low": [
"You cook for Hazel, and she tries very hard not to look like she wants to help.",
"\"I can chop something. Or wash something. Sorry, I know you said sit.\"",
"The meal comes out a little rough, but she eats it with the expression of someone determined to find the good part.",
"\"It's warm. Warm is good.\"",
"She takes another bite and smiles shyly.",
"\"Also, you made it for me. That helps more than seasoning probably should.\""
],
"high": [
"You cook for Hazel well enough that she goes quiet after the first bite.",
"\"Oh. This is good.\"",
"She says it like she is surprised and pleased and a little touched all at once.",
"The conversation stays simple: work food, cheap meals, things that can be made when someone is tired, songs that make kitchen cleanup less awful.",
"Hazel looks down at the plate, then up at you.",
"\"I like when someone makes food without making it feel like a test.\"",
"A small smile.",
"\"Can I help next time? Just a little?\""
]
}
},
"first_kiss": {
"text": [
"The first real kiss with Hazel is soft enough that she has time to get nervous and deep enough that she forgets what she was nervous about.",
"Your mouth touches hers.",
"She kisses back carefully, then a little harder when she realizes you are not pulling away.",
"Her fingers clutch the front of your shirt.",
"When your tongue brushes her lips, she lets out a tiny sound and immediately blushes against your mouth.",
"You slow down.",
"Hazel follows you, almost stumbling into the kiss.",
"\"No,\" she whispers. \"I mean... I liked that.\"",
"So you kiss her again, and this time she opens her mouth sooner."
]
},
"first_handjob": {
"text": [
"The first time Hazel touches your cock, her hand shakes so much that the first stroke barely counts.",
"She looks at you, then down at her fingers around your shaft, like she is checking that she is still allowed to continue.",
"\"I am doing this. Okay. I am doing this.\"",
"You stay still for her, and her grip becomes a little braver.",
"When your cock throbs in her hand, she gasps like the reaction surprised both of you.",
"\"That was because of me?\"",
"The next stroke is slow, nervous, and full of the kind of courage she has to build one inch at a time."
]
},
"first_blowjob": {
"text": [
"The first time Hazel gets on her knees for your cock, she looks nervous enough to run and eager enough to stay.",
"Her hands rest on your thighs for a second before one of them reaches for your shaft.",
"She wraps her fingers around you carefully, feeling the heat and weight of your cock in her hand.",
"\"I want to do this right.\"",
"It is not a rule. It is a confession.",
"She leans in and kisses the head of your cock, soft at first, then opens her mouth and licks the precum from the tip.",
"The taste makes her eyes flutter.",
"\"Oh.\"",
"Her lips close around you.",
"She takes the first inches slowly, tongue pressing under your shaft while her hand strokes what she cannot fit in her mouth yet.",
"Hazel looks up when you groan, and the sound seems to give her courage.",
"She takes you a little deeper, mouth warm and wet around your cock, cheeks flushing as her tongue works clumsily but earnestly.",
"You feel her swallow once around the head, testing herself.",
"Her fingers tighten on your thigh.",
"\"I like knowing you feel it,\" she whispers when she pulls back for air, lips slick.",
"Then she puts her mouth back on your cock, less afraid of wanting to be good at it."
]
},
"first_cunnilingus": {
"text": [
"Hazel is almost more embarrassed by receiving oral than by giving it.",
"She lies back with her hands near her face, sweater pushed up, thighs parting slowly.",
"\"You really want to?\"",
"You kiss the inside of her thigh instead of answering with a speech.",
"Her body answers before she does.",
"When your tongue drags up her wet slit, Hazel gasps and covers her mouth with one hand.",
"You lick her pussy again, slower, spreading her folds until you find her clit.",
"\"Oh, that's...\"",
"She loses the rest when your tongue circles the swollen little bud.",
"Her hips lift toward your mouth, shy and helpless.",
"\"Sorry. Sorry, I am moving.\"",
"You keep licking until the apology turns into a soft moan and her thighs start trembling around your head."
]
},
"first_facesitting": {
"text": [
"Hazel climbs over your face like she is certain she is doing something wrong just by wanting it.",
"\"I might be too heavy.\"",
"You pull her down gently before she can hide inside that fear.",
"Her wet pussy settles against your mouth, and the first lick makes her gasp so hard her hands grab for balance.",
"\"Oh. Oh, sorry.\"",
"You lick her again, tongue sliding through her wet folds and finding her clit from below.",
"Hazel trembles over you, thighs tense beside your head, hips afraid to move and wanting to anyway.",
"Her hand covers her mouth.",
"You keep eating her pussy until she sinks lower by accident, clit pressing against your tongue.",
"\"I can't... I can't stay still.\"",
"Her hips rock once, tiny and embarrassed.",
"You lick her clit again and she does it a second time, moaning into her palm."
]
},
"first_beg_facesit_success": {
"text": [
"You beg Hazel to sit on your face, and the request makes her look both terrified and wanted.",
"\"You want that? Me? Like that?\"",
"You say yes.",
"Her hands twist together.",
"\"I don't know if I know how.\"",
"You tell her she does not need to perform.",
"Her shoulders loosen, and she climbs over you.",
"She climbs over you, thighs shaking, wet pussy lowering toward your mouth.",
"The first touch of your tongue makes her gasp.",
"\"Oh. That's... yes.\"",
"She settles a little closer, still nervous, but now her body is listening more than her fear."
]
},
"first_69": {
"text": [
"Sixty-nine overwhelms Hazel because she wants to be good with her mouth and immediately forgets how to focus when your mouth touches her too.",
"She positions herself carefully, cheeks red, one hand around your cock while her wet pussy hovers above your face.",
"\"I might get distracted.\"",
"Your tongue answers by dragging up her slit.",
"Hazel gasps and almost drops your cock from her hand.",
"Then she remembers what she wanted and lowers her mouth around you.",
"Her lips close around the head of your cock, tongue shy under the shaft, while your mouth works her pussy from below.",
"The first time your tongue circles her clit, she moans around you.",
"The vibration runs through your cock and makes her eyes widen.",
"\"Sorry,\" she breathes when she pulls off.",
"You lick her again.",
"She gives up on the apology and takes you back into her mouth, wetter and needier, trying to suck you while her hips tremble against your tongue."
]
},
"first_rub_pussy_fabric_public": {
"text": [
"The first time you rub Hazel's pussy through fabric in public, she looks like her heart jumps into her throat.",
"\"Here?\"",
"Her voice is tiny.",
"You keep the touch hidden, fingers pressing against her slit through her clothes.",
"She does not move away.",
"She stays close to you, trembling, but she stays.",
"The fabric warms under your hand, then grows damp as you rub her gently.",
"Hazel's eyes lower and her fingers clutch at her sleeve.",
"\"I'm getting wet.\"",
"She says it so quietly it almost disappears.",
"You move again, and her thighs close around your hand.",
"\"Please be careful. I don't want anyone else to know.\""
]
},
"first_fingering": {
"text": [
"The first time your fingers touch Hazel's bare pussy, she is already wet and embarrassed by how obvious it is.",
"She looks down, sees your hand between her thighs, and immediately looks away again.",
"\"Sorry. I am really wet.\"",
"You rub her clit first, slow circles that make her breath shake.",
"Her hips lift before she can ask them not to.",
"Then your first finger slides into her cunt.",
"Hazel gasps and grips your wrist with both hands, not stopping you, just needing something to hold.",
"\"Oh. That's inside.\"",
"You move carefully, thumb still brushing her swollen clit while her pussy tightens around your finger.",
"When you add a second finger, she moans and hides her face against your shoulder.",
"\"Please. I don't know what to do with my hands.\"",
"You curl your fingers inside her, and the answer becomes her hips moving into your touch."
]
},
"first_analingus": {
"text": [
"Hazel goes very still when your mouth moves lower than she expected.",
"\"There?\"",
"She sounds nervous, not disgusted.",
"You kiss the back of her thigh first, then the soft curve under her ass, giving her time to breathe.",
"Her fingers twist against the surface beneath her.",
"When your tongue touches her asshole, Hazel makes a small startled sound.",
"\"Oh. That's strange.\"",
"You lick her again, slow and careful around the tight little hole.",
"She does not melt into it the way she does with your cock in her mouth or a wall at her back, but the intimacy makes her tremble.",
"\"I don't hate it,\" she whispers, surprised by herself.",
"A pause.",
"\"Just slowly.\""
]
},
"first_ask_sex_success": {
"text": [
"You ask Hazel for sex, and for a moment she looks like the words have gone straight through her.",
"\"With me?\"",
"You say yes.",
"Her eyes get wet before anything has even happened, and she smiles like she is trying not to look too happy.",
"\"I want that.\"",
"She steps closer, hands hovering before they settle on your shirt.",
"\"I want you. I just get nervous because I want it so much.\""
]
},
"first_beg_sex_success": {
"text": [
"You beg Hazel for sex, and the need in your voice seems to undo her more than confidence would have.",
"She stares at you, breathing shallowly.",
"\"You really want me like that?\"",
"You tell her yes.",
"Her hands come to your chest, soft and trembling.",
"\"Okay.\"",
"The word is small, but her body is already moving closer.",
"\"Please touch me. I don't want to overthink it.\""
]
},
"first_demand_sex_success": {
"text": [
"You demand sex from Hazel, and she almost flinches from how direct it is.",
"Then she realizes the want is aimed at her, and her face turns helplessly red.",
"\"I... yes.\"",
"She swallows, eyes dropping to your mouth.",
"\"I mean, I want to. I am just nervous.\"",
"She reaches for your hand and places it against her waist like she needs your touch to finish the sentence.",
"\"Please be gentle at first. Then... I think I can follow you.\""
]
},
"first_vaginal_intro": {
"text": [
"When your cock presses against Hazel's wet slit for the first time, she looks at you like she is about to cry from wanting it and being scared of wanting it.",
"\"I am ready. I want you inside me.\"",
"You push forward slowly, the head of your cock spreading her pussy open.",
"Hazel gasps and clings to you.",
"Her cunt is wet and tight, stretching around the first inch while her breath breaks against your shoulder.",
"\"Oh. I can feel you.\"",
"You give her another inch, and her pussy clenches around your cock.",
"She moans softly, almost apologetically.",
"\"Please keep going.\"",
"You slide deeper until she has taken you inside, warm and trembling around you.",
"Her legs tighten around your hips.",
"\"I feel so full.\""
]
},
"first_anal_intro": {
"text": [
"Hazel's first anal starts with a lot of nerves and no pretending otherwise.",
"\"I don't know if I can do that.\"",
"You take it slowly, with enough lube and enough time for her to breathe.",
"The head of your cock presses against her tight asshole, and Hazel grips the surface beneath her.",
"\"Oh. That's... that's a lot.\"",
"You hold still until she nods.",
"Then you push in just a little, feeling her tight ring stretch around the head.",
"Hazel whimpers and hides her face.",
"\"Wait. Just wait.\"",
"You wait.",
"After a few breaths, her hips shift by the smallest amount.",
"\"Maybe a little more. Really slowly.\""
]
},
"first_position_missionary": {
"text": [
"Missionary makes Hazel feel safe enough to look at you while your cock slides into her pussy.",
"She holds your shoulders, eyes wide, mouth parted with each slow inch.",
"\"I like seeing you.\"",
"The admission makes her blush even while your cock is buried inside her.",
"You move carefully at first, and her wet cunt clenches around you with every thrust.",
"Her breathing turns soft and broken.",
"\"Oh. That feels good.\"",
"She pulls you closer with surprising need.",
"\"Can you stay close like this? Please.\""
]
},
"first_position_cowgirl": {
"text": [
"Cowgirl makes Hazel nervous almost immediately.",
"She lowers herself onto your cock with both hands on your chest, but the position leaves her too visible and too responsible for the rhythm.",
"Her pussy takes you slowly, wet and tight, but her face is flushed with uncertainty.",
"\"I don't know if I'm doing it right.\"",
"You help her hips move once.",
"She gasps, then laughs nervously.",
"\"Oh. That felt good. I just... I think I like when you lead more.\"",
"She tries a few more strokes, shy and clumsy, before sinking down and letting you hold her steady."
]
},
"first_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl is even harder for Hazel because she cannot see your face.",
"She faces away, lowering herself onto your cock in tiny, uncertain movements.",
"Her pussy is wet enough to take you, but her hands keep searching for balance.",
"\"I feel too far away.\"",
"You hold her hips and guide her gently.",
"That helps, but not enough to make the position feel like hers.",
"She takes a few shallow strokes, cunt tightening around your cock, then looks back over her shoulder.",
"\"Can we be closer after this? I like closer.\""
]
},
"first_position_doggy": {
"text": [
"Doggy makes Hazel nervous, but not in the same way cowgirl does.",
"She does not have to lead. She only has to trust you.",
"Her hands grip the surface beneath her as your cock presses against her wet pussy from behind.",
"\"Okay. I'm ready.\"",
"You push inside slowly, and she moans into her own arm.",
"Her cunt is hot and slick around you, tightening with each careful inch.",
"You hold her hips and start moving.",
"Hazel's breath catches at the deeper angle.",
"\"Oh. That... that's really deep.\"",
"Her back arches without her meaning to.",
"\"Please don't stop. Just not too fast.\""
]
},
"first_position_wall": {
"text": [
"The first time Hazel has your cock inside her against the wall, something in her gives way completely.",
"She is nervous at first, back pressed to the wall, hands clutching your shoulders while your body pins her there.",
"\"I feel like I can't hide.\"",
"You kiss her and line your cock up with her wet pussy.",
"She shivers before you even push in.",
"Then the head of your cock spreads her open and Hazel gasps into your mouth.",
"You lift and hold her steady as you slide deeper, her cunt wet and tight around you, thighs trembling against your hips.",
"\"Oh my god.\"",
"Her voice sounds small and wrecked.",
"You thrust once, and the wall holds her in place while your cock drags through her pussy.",
"Hazel clings to you, breasts pressed to your chest, breath breaking with every stroke.",
"\"I like this,\" she whispers, almost shocked by herself. \"I like this so much.\"",
"You fuck her there, firm and close, and she stops trying to sound careful.",
"Her moans come out soft, needy, and full of surrender, pussy clenching harder every time your hips pin her back to the wall."
]
},
"first_anal_position_missionary": {
"text": [
"Missionary anal lets Hazel keep your face close, which is the only reason she can breathe through the nerves.",
"Your cock presses against her tight asshole while her hands cling to your shoulders.",
"\"I'm scared,\" she whispers.",
"You go slowly, pushing only enough for the head to start stretching her.",
"Hazel gasps and squeezes her eyes shut.",
"\"Wait. Please wait.\"",
"You do.",
"When she opens her eyes again, she looks relieved that you are still close.",
"\"Okay. A little. Just a little more.\"",
"You ease deeper and feel her ass tighten around you while she breathes shakily against your mouth."
]
},
"first_anal_position_cowgirl": {
"text": [
"Cowgirl anal is difficult for Hazel from the start.",
"She tries because she wants to please you, but lowering herself onto your cock this way makes her shake.",
"The head presses against her tight asshole and she grips your chest.",
"\"I don't know if I can.\"",
"You keep still and let her decide the pace.",
"She manages the first stretch, face flushed, breath broken.",
"\"Oh. That is too much. Not bad, just... I need you close.\"",
"She takes a tiny bit more, ass clenching around the head of your cock, then stops and leans forward for comfort.",
"\"Hold me. Please.\""
]
},
"first_anal_position_reverse_cowgirl": {
"text": [
"Reverse cowgirl anal leaves Hazel too far from your face and too aware of the stretch.",
"She faces away, hands braced on your thighs, tight asshole hovering over your cock.",
"\"I feel nervous like this.\"",
"You hold her hips gently while she lowers herself a little.",
"The head of your cock starts to open her, and she freezes.",
"\"Oh. Wait.\"",
"You wait.",
"She breathes, then takes another fraction, ass clenching hard around you.",
"\"I can try. I just need to know you're still with me.\"",
"Her voice shakes more than the position does."
]
},
"first_anal_position_doggy": {
"text": [
"Doggy anal makes Hazel tremble because she cannot see you, but your hands on her hips keep her grounded.",
"Your cock presses to her tight asshole from behind, slick and careful.",
"\"Slow. Please.\"",
"You push in by degrees, opening her around the head.",
"Hazel whimpers against the surface beneath her.",
"\"Oh. That's so much.\"",
"You hold still until her body stops fighting the stretch.",
"Then you slide a little deeper, and her fingers curl hard into the fabric.",
"\"Okay. I can take a little more. I think.\""
]
},
"first_anal_position_wall": {
"text": [
"Wall anal terrifies Hazel and turns her on in the same breath.",
"Her back is against the wall, your body steadying hers, your cock pressed to her tight asshole instead of her pussy.",
"\"I trust you,\" she whispers, like she needs to hear herself say it.",
"You start slow, slick pressure opening her by a fraction.",
"Her nails dig into your shoulders.",
"\"Oh, please wait.\"",
"You wait until she nods against your neck.",
"Then you push in a little more, feeling her ass stretch tight around the head of your cock.",
"Hazel makes a broken little sound.",
"\"It feels scary. But being held like this... I like that part.\""
]
},
"first_sex": {
"text": [
"The first time your cock is fully inside Hazel's pussy, she looks overwhelmed by how much she wanted it.",
"She is wet, tight, and trembling around you, hands clinging to your shirt like she still needs permission to hold on.",
"\"You feel so good inside me.\"",
"The words leave her in a rush, and her cheeks flush darker.",
"You move slowly at first, letting her feel every inch slide through her cunt.",
"Her breath breaks each time you push deep.",
"\"Oh. Please. More.\"",
"You give her more, and her pussy clenches hard around your cock.",
"Her hips start moving with yours, shy at first, then needier.",
"\"I want to be good for you,\" she whispers, and then she moans because your next thrust drives the thought out of her mouth."
]
},
"first_anal": {
"text": [
"Hazel's first anal is careful, nervous, and full of tiny pauses.",
"Your cock presses into her tight asshole slowly, lube slick between you, her body tense under your hands.",
"\"I'm trying to relax.\"",
"The head starts to stretch her open and she whimpers.",
"You stop until she breathes again.",
"\"Okay. I can feel it. I can really feel it.\"",
"You ease in a little more, and her ass clenches around the head of your cock.",
"She hides her face, voice muffled and shaky.",
"\"It's not my favorite, but I like that you're being gentle.\"",
"A pause.",
"\"Maybe a little more.\""
]
},
"first_demand_anal_success": {
"text": [
"You ask Hazel for anal directly enough that she goes pale, then pink.",
"\"Oh. That is... a lot.\"",
"She looks down, fingers twisting in her sweater.",
"You soften your voice and make sure she knows she can say no.",
"That is what lets her answer honestly.",
"\"I am scared,\" she admits.",
"A breath.",
"\"But I want to try for you. Slowly. Please slowly.\""
]
},
"first_undress_top_off": {
"text": [
"Hazel takes her sweater off like it is a much bigger step than the amount of skin would explain.",
"She pulls it over her head and immediately smooths her hair with nervous hands.",
"Her bra is visible now, her cheeks flushed, shoulders slightly hunched like she is trying not to be too exposed.",
"\"I know it's just a sweater.\"",
"She laughs quietly at herself.",
"\"It feels like more.\"",
"You look at her gently, and the tension in her posture eases by a fraction.",
"\"Thank you for not rushing.\""
]
},
"first_undress_bra_off": {
"text": [
"Hazel's hands tremble a little when she unhooks her bra.",
"She lets it slide down her arms, then looks away while her tits are bare in front of you.",
"Her nipples tighten in the air, and the sight makes her blush harder than the chill does.",
"\"I feel very naked now.\"",
"You tell her she looks beautiful.",
"Her eyes get soft and uncertain.",
"\"I believe you. I think. I want to.\"",
"When your hand touches her breast, she exhales in a small shaky sound and leans into the warmth."
]
},
"first_undress_bottom_off": {
"text": [
"Hazel removes her bottoms with slow, nervous movements.",
"She keeps glancing at your face like she is checking whether you still want her.",
"You do.",
"That makes her blush worse.",
"The fabric slides down her hips, leaving her legs bare and her panties visible.",
"\"Sorry. I keep wanting to hide.\"",
"She does not hide.",
"She stays there, breathing carefully, letting you look while her hands twist together at her waist."
]
},
"first_undress_panties_off": {
"text": [
"Hazel hesitates before taking off her panties.",
"Undressing is hard for her, and this last layer makes her fingers pause at the waistband.",
"You wait.",
"Only then does she slide them down.",
"She slides the panties down, exposing her wet pussy, and immediately covers her face with one hand.",
"\"I'm sorry. I'm really wet.\"",
"You move closer instead of teasing her.",
"Her thighs press together, then slowly part.",
"\"I want you to see. I am just embarrassed that I want it.\""
]
},
"first_massage_undress_top_off": {
"text": [
"During the massage, Hazel removes her sweater only after your hands have been gentle for a while.",
"\"It might be easier without it.\"",
"She says it like she is asking permission from the air.",
"The sweater comes off, and she sits in her bra, arms close to her sides.",
"You return your hands to her shoulders, warm against bare skin now.",
"Her eyes close immediately.",
"\"Oh. That's much better.\"",
"She smiles shyly without opening them.",
"\"I mean, for my shoulders. Mostly.\""
]
},
"first_massage_undress_bra_off": {
"text": [
"Hazel takes off her bra during the massage because your hands have made the touch feel safe enough for a little more courage.",
"Her breasts are bare, nipples tight, but she keeps her head down while you continue working her shoulders.",
"You do not rush to grab her tits.",
"That makes her breathe out, relieved and aroused at once.",
"\"I like that you can wait.\"",
"Then your thumb brushes near the side of her breast and she makes a tiny sound.",
"\"But you can touch me there too. I think I want that.\""
]
},
"first_massage_undress_bottom_off": {
"text": [
"Hazel removes her bottoms during the massage with a nervous little smile that disappears when your hands return to her hips.",
"The touch feels warmer now, closer.",
"You work down from her lower back to the soft curve of her hips, then along her thighs.",
"Her legs part slightly before she notices.",
"\"Sorry.\"",
"She starts to close them.",
"You keep your hand gentle on her thigh, not forcing anything.",
"Hazel stops hiding from the feeling.",
"\"No. I mean... it's okay. I liked it.\""
]
},
"first_massage_undress_panties_off": {
"text": [
"When Hazel takes her panties off during the massage, the courage seems to cost her something.",
"Her pussy is wet when she settles back within reach.",
"She knows you can see it and can barely look at you.",
"\"I wanted to take them off,\" she whispers.",
"You rest your hand on her thigh.",
"She opens her legs slowly, breath shaking.",
"Your fingers move closer to her wet slit, and her hips lift by a tiny amount before contact.",
"\"Please touch me.\"",
"The words are almost too quiet.",
"Then your fingertips reach her pussy and she stops trying to say anything else."
]
},
"first_slide_inside_panties_public": {
"text": [
"Your fingers slide inside Hazel's panties in public, and she looks immediately overwhelmed by how private it feels in the wrong place.",
"\"Someone might see.\"",
"The fear is real, but she still leans closer to you instead of away.",
"Your fingertips find her wet pussy under the fabric.",
"She inhales sharply and grips your sleeve.",
"You rub her clit in tiny hidden circles, feeling her slickness gather against your fingers.",
"Hazel's voice turns into a whisper.",
"\"I am so wet. I can't believe I am this wet here.\"",
"Her thighs tighten around your hand.",
"\"Please. Just a little more. Then we should stop before I make a sound.\""
]
},
"first_deep_kiss": {
"text": [
"The first deep kiss with Hazel makes her forget to be careful.",
"Your tongue touches hers and she gives a soft, surprised moan into your mouth.",
"Her hands clutch at your shirt, holding on like the kiss might take her balance.",
"You kiss her deeper, and she opens for you with a shy eagerness that feels almost helpless.",
"She pulls back only far enough to breathe.",
"\"I liked that too much.\"",
"Then she blushes at her own honesty.",
"\"Can we do it again?\""
]
},
"first_invite_photoshoot": {
"text": [
"Hazel stands near the wall with her hands half-hidden in her sleeves.",
"\"Where should I put them?\"",
"You show her a simple pose.",
"She copies it, then looks down.",
"\"Do I look all right?\"",
"You take the first picture and show her the screen.",
"She smiles when she sees it.",
"\"Oh. Okay. You can take another.\""
]
},
"first_photo_hand_between_legs": {
"text": [
"You set the camera down. Hazel sees your hand move up her thigh.",
"She catches your wrist.",
"\"Wait.\"",
"You stop.",
"She looks down, then moves your hand back herself.",
"\"You can. Just be gentle.\"",
"Your fingers slide through her wet pussy. Her knees press together when you rub her clit.",
"You push a finger inside her and she clings to your arm.",
"\"Oh. Please keep going.\""
]
},
"first_invite_room": {
"text": [
"The first time Hazel comes to your room, she looks around like she is trying not to touch anything wrong.",
"\"It's nice.\"",
"You ask if she means that.",
"She smiles nervously.",
"\"I am mostly noticing that I am alone with you, so my room opinions are probably useless.\"",
"Her hands fold together, then unfold.",
"\"I wanted to come here. I just get shy after I get what I wanted.\""
]
},
"first_private_movie": {
"text": [
"The first private movie with Hazel lasts longer than expected because she really does try to watch it.",
"Music from the film fills the quiet, and she relaxes a little, humming under her breath before realizing you can hear.",
"\"Sorry.\"",
"You tell her you like it.",
"Her smile is small and bright.",
"Then your hand touches her knee and the humming stops.",
"Hazel looks down at your hand, then at the screen, then back at your hand.",
"\"I am still watching.\"",
"A pause.",
"\"Not very well.\""
]
},
"first_invite_gallery": {
"text": [
"The first gallery invite with Hazel turns into her trying earnestly to understand more than she does.",
"She stops in front of a painting and tilts her head.",
"\"I think I like the colors. I do not know if that is a smart answer.\"",
"You tell her it is an honest one.",
"That visibly helps.",
"She spends the rest of the visit noticing small things: a soft shadow, a pretty frame, a photograph that makes her sad without knowing why.",
"\"I like this,\" she says quietly. \"I like not having to be clever about it.\""
]
},
"first_invite_workout": {
"text": [
"The first workout with Hazel is mostly her trying not to apologize to exercise equipment.",
"\"I am not very sporty.\"",
"She does it anyway, because you are there and because she likes being gently encouraged more than she expected.",
"You correct her stance and she blushes from the touch.",
"\"Thank you. I would have pretended I understood and done it wrong.\"",
"By the end, she is tired, shyly proud, and smiling through the embarrassment.",
"\"I might like this if nobody yells.\""
]
},
"first_public_handjob": {
"text": [
"The first time Hazel touches your cock in public, her hand shakes so much you almost stop her.",
"She looks at you, cheeks burning, and gives the smallest nod.",
"Her fingers close around your shaft under cover, hidden by fabric and the angle of your bodies.",
"\"I can feel you getting harder.\"",
"The words come out in a stunned whisper.",
"She strokes you carefully, palm warm, thumb brushing the head of your cock when she gets braver.",
"Your twitch in her hand makes her eyes go wide.",
"\"Oh. You liked that.\"",
"She keeps moving, still shy, but now a little desperate to feel that reaction again."
]
},
"first_footjob": {
"text": [
"The first footjob with Hazel is awkward enough that she almost laughs from nerves.",
"\"I don't know if this is going to work.\"",
"She presses her foot against your cock, tentative and unsure.",
"You react anyway.",
"That makes her blush hard.",
"\"Oh. It does.\"",
"She tries again, sliding her foot along your shaft with careful pressure while watching your face for every sign.",
"It is not one of her strongest instincts, but pleasing you is.",
"\"Tell me if that feels good,\" she whispers.",
"Then she corrects herself immediately.",
"\"No, sorry, I can see it does.\""
]
},
"first_titfuck": {
"text": [
"The first time Hazel lets you fuck her tits, she looks embarrassed by how exposed the act feels.",
"She presses her breasts together around your cock, soft skin warm against the shaft.",
"Her breast sensitivity makes her breath catch when your cock slides between them.",
"\"Oh. I feel that.\"",
"You start thrusting slowly, the head of your cock pushing through the tight space between her tits.",
"Hazel watches with wide eyes, cheeks flushed.",
"She is shy about it, but the way your body reacts makes her feel useful and wanted.",
"\"You like this too?\"",
"She presses her breasts together a little tighter.",
"\"Okay. Then I like it.\""
]
},
"first_climax_body": {
"text": [
"The first time you cum on Hazel's body, she watches you with nervous devotion instead of performance.",
"Your cock jerks, spilling hot cum across her stomach.",
"Hazel gasps when it hits her skin.",
"\"Oh.\"",
"Another pulse lands lower, streaking over her soft belly and the edge of her hip.",
"She looks down at the mess, face burning, then back at you.",
"\"That came out because of me.\"",
"The thought makes her smile shyly and tremble at the same time."
]
},
"first_climax_back": {
"text": [
"The first time you cum on Hazel's back, she stays still because you asked her softly and she wants to do it right.",
"Your cock pulses, streaking hot cum across her skin.",
"She gasps at the heat, shoulders tensing.",
"\"Oh, that's warm.\"",
"Another spurt lands lower, and her fingers curl against the surface beneath her.",
"She looks back carefully, trying to see your face more than the mess.",
"\"Did that feel good?\"",
"She already knows, but hearing it matters to her."
]
},
"first_climax_boobs": {
"text": [
"The first time you cum on Hazel's tits, she looks down at herself with flushed disbelief.",
"Your cock jerks, spilling cum across her breasts and over one sensitive nipple.",
"She inhales sharply.",
"\"Oh. I felt that.\"",
"Another pulse lands between her tits, sliding over soft skin.",
"Hazel keeps her hands nearby like she is not sure whether to touch it or just let you look.",
"\"It's messy,\" she whispers.",
"A shy smile follows.",
"\"But I like that you wanted to do it on me.\""
]
},
"first_climax_face": {
"text": [
"The first time you cum on Hazel's face, she looks overwhelmed before it even happens.",
"You warn her, and she stays there because she wants to be good for you.",
"Your cock pulses, a hot streak of cum landing on her cheek.",
"Hazel gasps and blinks, eyes wide.",
"Another spurt hits near her mouth, marking her soft expression and making her look even more helplessly turned on.",
"\"Oh my god.\"",
"She touches the edge of the mess with trembling fingers.",
"Her voice is tiny.",
"\"I look like yours, don't I?\"",
"Then she blushes harder than the cum on her face ever could have made her."
]
},
"first_climax_mouth": {
"text": [
"The first time Hazel lets you cum in her mouth, she already wants it so badly that her nerves cannot hide it.",
"Her lips are around your cock, tongue working under the shaft, both hands resting on your thighs as she looks up at you.",
"You warn her you are close.",
"Instead of pulling back, Hazel seals her mouth more firmly around the head.",
"The first pulse hits her tongue and her eyes flutter.",
"Hot cum spills into her mouth in thick spurts, and she makes a small needy sound around your cock.",
"She swallows once, then again, throat working as she takes your load because she wants the taste and the proof that she made you finish.",
"Some cum slips to the corner of her lips, but she does not pull away until the last twitch is done.",
"When she finally lifts her mouth off your cock, her lips are wet and her eyes look dazed.",
"\"I swallowed it.\"",
"She says it like a secret she is proud of.",
"A breath.",
"\"I liked the taste. I liked... all of it.\""
]
},
"first_climax_public_hand": {
"text": [
"The first time you cum in Hazel's hand in public, she looks scared of the risk and thrilled that you trusted her with it.",
"Her fingers stroke your cock under cover, quickening when she feels you twitch.",
"\"You're close.\"",
"The words come out soft and amazed.",
"You pulse into her palm, hot cum spilling over her fingers while she stares forward, lips pressed tight to trap the sound.",
"Hazel's hand closes around the mess.",
"Her breathing goes shaky.",
"\"I have you in my hand.\"",
"She almost laughs, almost whimpers.",
"\"Your cum is in my hand. I cannot think.\""
]
},
"first_climax_inside_pussy": {
"text": [
"The first time you cum inside Hazel's pussy, she realizes it from the way your cock starts throbbing deep in her.",
"\"Are you... inside me?\"",
"The first pulse answers her.",
"You spill into her cunt, hot cum filling her while her inner walls clench around every spurt.",
"Hazel gasps and wraps her legs around you like she cannot decide whether to hold you still or pull you deeper.",
"\"Oh. I can feel it.\"",
"Her voice breaks on the last word.",
"You keep pulsing inside her, and her wet pussy tightens around your cock as if her body wants every bit of it.",
"When it is over, she is trembling under you, eyes soft and stunned.",
"\"You came inside me.\"",
"A shy, breathless smile.",
"\"I know I should say something smarter, but I just feel really happy.\""
]
},
"first_climax_inside_ass": {
"text": [
"The first time you cum inside Hazel's ass, the act is careful and overwhelming from start to finish.",
"Your cock is buried in her tight asshole when you tell her you are close.",
"She grips the surface beneath her, breathing hard.",
"\"Okay. I trust you.\"",
"The first pulse makes her whole body tense.",
"You fill her ass with hot cum, cock jerking inside her while the tight ring of muscle clenches around every spurt.",
"Hazel whimpers against the surface beneath her.",
"\"I felt that.\"",
"Another pulse hits and her thighs shake from the sheer intensity of being held through it.",
"When it is over, she stays still until you touch her gently.",
"\"I did it,\" she whispers.",
"Then, smaller:",
"\"Thank you for going slow.\""
]
}
}
}
END_FIRST_TIME_DATA %//% FIRST_TIME_BANK
{
"first_anal": {
"description": [
"Her hand stays on you while her tight asshole stretches around your cock.",
"The first time you press your cock to her ass, she needs a second before she nods and lets you start.",
"The careful start turns dirtier once she realizes she can take more.",
"You ease in by small degrees, stopping whenever her body needs time.",
"By the time you are inside her, she is breathing hard and keeping you close.",
"The first anal stretch demands patience. You move carefully, letting every inch become a negotiation between trust, heat, and how much she is willing to take."
],
"dialogue": [
"\"Slow. Let me breathe through it.\"",
"\"Do not rush. I need to feel safe with this.\"",
"\"Do not rush my ass.\"",
"\"Stay there. I need a second.\"",
"\"Fuck, that is so full.\""
],
"reaction": [
"Her fingers clutch at you while her ass takes the stretch.",
"Her asshole grips you hard once you are inside.",
"She trembles, but her hips do not pull away.",
"Her breathing breaks when another inch slips in.",
"She tightens hard at first, then exhales when you give her time.",
"She tightens hard at first, then exhales when you give her time to adjust."
]
},
"first_handjob": {
"description": [
"The first time her hand wraps around your cock, the contact starts careful and turns real as soon as your body reacts.",
"Her fingers close around your shaft, testing pressure and rhythm while she watches your breathing change.",
"The first stroke is cautious. The next one is slower, guided by the way you throb in her hand.",
"Her palm settles around you, warm and uncertain at first, then firmer when she feels what the touch does."
],
"dialogue": [
"\"Tell me if I should slow down.\"",
"\"I can feel you reacting.\"",
"\"Like this?\"",
"\"Keep still for a second. I want to feel it.\""
],
"reaction": [
"Her grip changes when your cock throbs in her hand.",
"Her eyes flick from your face to her fingers wrapped around you.",
"She grows more confident once your body answers the stroke.",
"Her thumb brushes the head, then repeats the motion when your breath catches."
]
},
"first_blowjob": {
"description": [
"She keeps one hand on your thigh while her lips work around your cock.",
"The first time her mouth closes around your cock, she starts with the head and watches how you react.",
"The blowjob starts cautious, but the wet sound of her mouth makes it dirtier fast.",
"Her tongue moves carefully at first, then she takes more when she feels you getting harder.",
"She pulls back once to breathe, then returns to your cock with more confidence.",
"The first time her mouth closes around you, the room narrows to heat, breath, and the wet rhythm she is learning from your reactions."
],
"dialogue": [
"\"Tell me if you want it slower.\"",
"\"I want to hear what this does to you.\"",
"\"I like feeling you get harder.\"",
"\"Keep watching me.\"",
"\"I want to feel you throb.\"",
"\"Tell me if you are close.\""
],
"reaction": [
"Her eyes flick up while your cock is still in her mouth.",
"Her hand squeezes your thigh when your body reacts.",
"Her lips tighten when she feels you throb.",
"Precum slicks her tongue before she pulls back.",
"She looks up once, gauging what you can handle, then grows bolder when your body answers.",
"She breathes through her nose and takes another inch."
]
},
"first_cunnilingus": {
"description": [
"The first time your mouth reaches her pussy, she goes still for a second, then lets her thighs open.",
"You start with slow licks over her slit and move to her clit when her breathing changes.",
"Her hand finds your hair without forcing you, just keeping you close when it starts to feel good.",
"By the time you pull back, her pussy is wetter and her thighs are trembling.",
"The first taste of her turns the scene quiet and intimate. Your tongue moves carefully at first, then follows the places where her body starts to tremble.",
"You keep your tongue on her until she stops trying to stay perfectly quiet."
],
"dialogue": [
"\"Right there... do not stop.\"",
"\"Your mouth feels better than I expected.\"",
"\"Right there. Keep licking.\"",
"\"Do not stop with your mouth.\"",
"\"My clit. Stay on it.\""
],
"reaction": [
"Her hips lift when your tongue finds her clit.",
"Her thighs tighten around your head.",
"She grips your hair, then loosens her fingers before it gets too rough.",
"A real moan slips out before she can swallow it.",
"Her body stays open for your mouth.",
"Her thighs tense around your head, then ease open when the rhythm finds her."
]
},
"first_kiss": {
"description": [
"The first real kiss starts carefully. You lean in, she does not pull away, and your mouths meet for a few slow seconds.",
"Her lips part just enough to make the kiss feel wanted instead of accidental.",
"You kiss her properly for the first time, keeping it soft until she starts kissing back.",
"You keep one hand still near her side while the kiss turns warmer.",
"The first real kiss changes the distance between you. It starts as a risk, then becomes a decision when neither of you pulls away.",
"When you pull back, the first kiss has done enough without needing to become anything bigger yet."
],
"dialogue": [
"\"Okay... that was real.\"",
"\"Do that again, but slower.\"",
"\"You can kiss me like that.\"",
"\"Stay close for a second.\"",
"\"Okay. That was good.\"",
"\"Do that again, but slowly.\""
],
"reaction": [
"Her eyes stay on your mouth after the kiss ends.",
"She goes still for the first heartbeat, then answers the kiss with a warmer pressure.",
"Her fingers twitch once near your shirt before she catches herself.",
"She goes quiet for a second, then lets out a small breath.",
"She does not step away, which says more than her face does.",
"A faint flush stays on her cheeks."
]
},
"first_sex": {
"description": [
"The first thrusts are careful, but the heat turns real once her hips start moving back.",
"The first time your cock enters her pussy, she watches your face and breathes through the first stretch.",
"You start slowly, letting her wet cunt take you before either of you gets rougher.",
"The first time you slide into her, the rhythm starts slow enough for both of you to feel the change. The heat becomes heavier, closer, and impossible to treat like teasing anymore.",
"She holds onto you when you push deeper, not pulling away even when her breath catches.",
"When you finally settle inside her, the teasing is over and the sex is real."
],
"dialogue": [
"\"Slow at first... I want to feel all of it.\"",
"\"Stay close. Do not rush this.\"",
"\"Slow first. Then harder.\"",
"\"Stay inside me.\"",
"\"Deeper. That feels good.\"",
"\"I want to feel all of it.\""
],
"reaction": [
"Her pussy clenches around your cock.",
"Her hips begin to answer yours after the first few thrusts.",
"She grips you as the first thrust settles, her breath catching before her hips answer yours.",
"Her fingers dig into you when you push deeper.",
"She exhales hard and keeps you close.",
"She looks a little overwhelmed, but she does not pull away."
]
}
}
END_FIRST_TIME_BANK %/<div class="game-closed-page">
<div class="card game-closed-card">
<h1>You have closed the game.</h1>
<h2>The game is now closed</h2>
<p>Sorry, I think you have to close the window yourself</p>
</div>
</div><<run setup.CC.init()>>
<<set $cc.view = "girl">>
<<= setup.CC.view("girl") >><<set $photo001ready to 1>>
/% VIDEO_LIST: analingus,blowjob,cowgirl anal,cowgirl sex,cum facial,cunnilingus,doggy anal,doggy sex,fingering,footjob,handjob,missionary,missionary anal,revcow anal,revcow sex %/
<<set $dialogue001ready to 1>>
/% GIRL_DATA
{
"id": "g0",
"slot": 0,
"first": "Maya",
"last": "Bell",
"name": "Maya Bell",
"age": 24,
"avatar": "🌿",
"style": "warm",
"difficulty": -5,
"bio": "Maya Bell owns a small coffee shop on Cafe Row. She remembers regulars, keeps a notebook of recipes under the till, and works more shifts than she admits are sustainable. She is easy to talk to until the conversation turns toward her. Then she makes a joke and changes the subject.",
"personality": [
"warm",
"observant",
"dry humor"
],
"inclinations": [
"serious about food",
"loves massage",
"quietly ambitious",
"slow to trust"
],
"socialLinks": [
{
"girlId": "g7",
"name": "Hazel Mercer",
"relationship": "cafe regular",
"how": "Hazel often eats at the cafe before early kitchen shifts, and Maya sends her home with food that would otherwise be thrown out."
},
{
"girlId": "g17",
"name": "Olivia Stone",
"relationship": "catering contact",
"how": "Olivia orders coffee and pastry trays for events, then stays to compare which items came back untouched."
},
{
"girlId": "g13",
"name": "Bianca Rowe",
"relationship": "massage client",
"how": "After Bianca works on Maya's shoulders, Maya makes her lunch and they catch up in the back of the cafe."
},
{
"girlId": "g3",
"name": "Tessa Grant",
"relationship": "weekday lunch regular",
"how": "Tessa comes in for lunch most weeks and notices when Maya has changed a recipe."
},
{
"girlId": "g15",
"name": "Keira Lane",
"relationship": "photography client",
"how": "Keira took the menu and cafe photos before the shop reopened one spring."
}
],
"details": {
"eyeColor": "vibrant blue",
"eyeShape": "almond eyes with heavy blue eyeshadow",
"hairColor": "vivid crimson red",
"hairStyle": "long wavy with thick side braid",
"hairLength": "waist-length",
"hairTexture": "silky with volume",
"skinTone": "porcelain pale",
"height": "5'7",
"bustSize": "very large breasts (natural, heavy)",
"buttSize": "thick, round, juicy ass",
"waist": "narrow, defined",
"legs": "long, toned thighs",
"faceShape": "heart-shaped face",
"lips": "full, painted red",
"eyebrows": "elegant arched brows",
"voice": "warm, a little rough after long shifts",
"makeup": "blue eyeshadow",
"nails": "long red polish",
"tattoos": "no",
"piercings": "gold hoop earrings",
"posture": "upright until fatigue pulls at her shoulders",
"demeanor": "friendly, watchful, private about herself",
"top": "tight yellow crop tee",
"bottom": "skin-tight blue jeans",
"outfitFit": "bright and close-fitting",
"underwear": "orange lace thong + orange lace bra",
"shoes": "red heels or barefoot",
"accessories": "gold earrings, thin gold chain",
"perfumeStrength": "barely there",
"movement": "quick at work, unhurried when she can finally rest",
"laugh": "soft at first, fuller when she forgets to hold it back",
"hobby": "cooking",
"occupation": "cafe owner and barista"
},
"interests": {
"cooking": 82,
"sports": 54,
"informatic": 12,
"finance": 14,
"art": 40,
"photography": 63,
"music": 36
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 46
},
"positionPrefs": {
"kissing": 15,
"touching": 16,
"breast_sensitivity": 35,
"legs_sensitivity": 52,
"receiving_oral": 33,
"giving_oral": 7,
"swallowing": 34,
"sixty_nine": 46,
"missionary": 10,
"cowgirl": 10,
"reverse_cowgirl": 22,
"doggy": 33,
"wall": 13,
"vaginal_sensitivity": 53,
"anal_sensitivity": 34,
"ass_sensitivity": 9,
"breast_sex": 33,
"fingering": 32,
"handjob": 26,
"undressing": 25,
"exhibitionism": 52,
"massage": 78
},
"routine": {
"home": "loc3",
"work": "loc6",
"favorite": "loc8",
"weekend": "loc9",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 62,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Evening": {
"label": "Evening",
"loc": "loc8",
"chance": 62,
"fallback": "walking through the park"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc8",
"chance": 62,
"fallback": "walking through the park"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Evening": {
"label": "Evening",
"loc": "loc8",
"chance": 62,
"fallback": "walking through the park"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 45,
"fallback": "out under the bass"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 62,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc8",
"chance": 62,
"fallback": "walking through the park"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 64,
"fallback": "near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc8",
"chance": 62,
"fallback": "walking through the park"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 62,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 64,
"fallback": "near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc9",
"chance": 64,
"fallback": "near the water"
},
"Evening": {
"label": "Evening",
"loc": "loc4",
"chance": 45,
"fallback": "visiting the quiet upper blocks"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 82,
"fallback": "on cafe shift"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 001",
"bioStages": [
{
"knowledge": 20,
"text": "Maya does more than make coffee. She checks deliveries at dawn, covers breaks when someone calls in sick, and keeps a screwdriver beside the spare filters because the grinder jams twice a week. By late afternoon she starts rolling her left shoulder between orders. If you offer help, her first answer is usually that she has it. Sometimes, after looking at the queue, she lets you carry a box anyway."
},
{
"knowledge": 40,
"text": "She grew up in the rooms above a family kitchen where someone was always chopping onions or arguing over a pot. Her aunties taught by putting a spoon in her hand and telling her to taste. Maya still cooks that way. She measures when she is testing a recipe, then changes it by smell when the pan gets hot. The cafe menu only shows the safest part of what she can do."
},
{
"knowledge": 60,
"text": "Maya has been saving for an after-hours supper club. Nothing grand: ten mismatched chairs, a short menu, cheap wine, and one night a week when she can cook without watching the clock above the espresso machine. She photographs every test plate and writes down what people leave unfinished. She talks about the plan freely until you ask when she will start. Then she looks at the repair bills and says she needs a little longer."
},
{
"knowledge": 80,
"text": "Standing all day has left knots along her neck, shoulders, and lower back. Massage is one of the few things that gets her to stop planning the next hour. At first she gives directions and checks every change in your hands. When she trusts you, the instructions become quieter. Eventually she puts her head down, lets her weight settle, and asks you not to stop."
},
{
"knowledge": 95,
"text": "Maya eventually tells you what she has trouble asking for. She wants someone who stays after dinner, helps with the dishes, and can see when she is tired without treating her like she is fragile. In bed she is curious, sometimes nervous, and much more direct once she feels safe. Letting you see that side of her means she no longer thinks every need has to be repaid."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(0)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 001">>
<<= setup.CC.view("girl") >><<set $photo002ready to 1>>
/% VIDEO_LIST: blowjob,doggy sex,doggy anal,fingering,handjob,missionary anal,missionary,revcow sex,revcow anal,standwall anal,standwall sex,69,cowgirl sex, cowgirl anal,analingus,cunnilingus,titfuck %/
<<set $dialogue002ready to 1>>
/% GIRL_DATA
{
"id": "g1",
"slot": 1,
"first": "Zoe",
"last": "Bellamy",
"name": "Zoe Bellamy",
"age": 22,
"avatar": "📚",
"style": "reserved",
"difficulty": -5,
"bio": "Zoe Bellamy works in the University Library, repairs old computers, and notices small sounds before most people notice whole conversations. She is reserved and exacting, but there is a private daring under the quiet if someone earns access slowly.",
"personality": [
"reserved",
"analytical",
"quietly daring"
],
"inclinations": [
"informatic",
"music",
"controlled exhibitionism"
],
"socialLinks": [
{
"girlId": "g2",
"name": "Iris Moon",
"relationship": "repair customer",
"how": "Iris brought Zoe a paint-splashed laptop when it started dying just before an art deadline."
},
{
"girlId": "g11",
"name": "Mina Hart",
"relationship": "library coworker",
"how": "Mina lets Zoe use the library workroom when a repair needs a clean desk and a reliable outlet."
},
{
"girlId": "g8",
"name": "Elena Park",
"relationship": "library data contact",
"how": "Elena helped Zoe turn messy library usage exports into a report the director could actually read."
},
{
"girlId": "g16",
"name": "Diana Rook",
"relationship": "streaming contact",
"how": "Diana asks Zoe for a second opinion before buying streaming gear she cannot return."
}
],
"details": {
"eyeColor": "gray",
"eyeShape": "almond eyes",
"hairColor": "blonde",
"hairStyle": "in waves",
"hairLength": "short",
"hairTexture": "coarse",
"skinTone": "brown skin",
"skinDetail": "clear skin",
"height": "tall",
"bodyShape": "an athletic build",
"bustSize": "a small bust",
"buttSize": "a round butt",
"waist": "a soft waist",
"legs": "toned legs",
"faceShape": "a heart-shaped face",
"lips": "wide smile",
"eyebrows": "arched brows",
"voice": "a bright voice",
"makeup": "light makeup",
"scent": "clean soap",
"nails": "painted nails",
"tattoos": "an ankle tattoo",
"piercings": "a nose stud",
"posture": "a restless posture",
"demeanor": "reserved",
"top": "a fitted tee",
"bottom": "a skirt",
"outfitFit": "casual",
"underwear": "a lace underwear set",
"shoes": "a pair of flats",
"accessories": "a watch",
"perfumeStrength": "barely there",
"movement": "controlled gestures",
"laugh": "a quiet laugh",
"hobby": "informatic",
"occupation": "library assistant and hardware repair tech"
},
"interests": {
"cooking": 35,
"sports": 6,
"informatic": 76,
"finance": 33,
"art": 14,
"photography": 38,
"music": 76
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 58
},
"positionPrefs": {
"kissing": 38,
"touching": 21,
"breast_sensitivity": 97,
"legs_sensitivity": 17,
"receiving_oral": 16,
"giving_oral": 15,
"swallowing": 75,
"sixty_nine": 27,
"missionary": 39,
"cowgirl": 19,
"reverse_cowgirl": 32,
"doggy": 10,
"wall": 10,
"vaginal_sensitivity": 75,
"anal_sensitivity": 45,
"ass_sensitivity": 32,
"breast_sex": 7,
"fingering": 33,
"handjob": 26,
"undressing": 19,
"exhibitionism": 87,
"massage": 10
},
"routine": {
"home": "loc4",
"work": "loc5",
"favorite": "loc6",
"weekend": "loc11",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 82,
"fallback": "working the library desk"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 45,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 64,
"fallback": "checking art and photos"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 45,
"fallback": "passing through the cheaper blocks"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 64,
"fallback": "checking art and photos"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 002",
"bioStages": [
{
"knowledge": 20,
"text": "Zoe catches small patterns before most people notice anything is wrong: a failing fan, a record needle, the spacing of footsteps in the stacks. She is not cold so much as tuned differently. Flirting at her like a loud song gets you nowhere. The first real sign she likes you is smaller: she lowers one side of her headphones, lets the music keep playing between you, and corrects your mistake about a broken machine without making you feel foolish."
},
{
"knowledge": 40,
"text": "Her private life shifted when she restored a donated archive laptop and found old campus radio files buried in corrupted folders. Most were harmless: dedications, bad bands, late-night confessions. One was not harmless to her. A girl in the recording described being touched in the booth while someone watched through the glass, terrified and turned on by the red light still glowing. Zoe repaired the audio, labeled it preservation work, and listened until she knew every breath."
},
{
"knowledge": 60,
"text": "Zoe keeps an encrypted folder called Static. It holds restored audio, abandoned playlists, media-room tests, and her own notes about public quiet: locked doors, frosted glass, lights that say recording even when nobody is supposed to be there. Her breasts are embarrassingly sensitive, and she hates how fast a precise look or careful touch can make her nipples hard. She does not want random hands. She wants exact attention, chosen slowly enough that she can pretend control is still possible."
},
{
"knowledge": 80,
"text": "Her risk is almost-witnessed, not reckless. A media room with the door locked but the red light on. A library desk where shadows move behind frosted glass. Music low enough to hide a breath, not low enough to make the room innocent. Zoe gets sharper in that state, not softer. She tells you where to stand, when to wait, when to look, and when not to touch yet. The danger is measured, and that measurement is exactly what makes her wet."
},
{
"knowledge": 95,
"text": "When Zoe lets you in, she admits that exposure is what scares her because it works. A silhouette at the archive glass. A blouse pulled tight over hard nipples from one shaky inhale. A recording of her own whimper that she should delete and never does. Her calm is not emptiness. It is a locked room with music still playing inside, and if she opens the door for you, she expects you to hear everything without turning it cheap."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(1)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 002">>
<<= setup.CC.view("girl") >><<set $photo003ready to 1>>
/% VIDEO_LIST: missionary,footjob,cowgirl anal %/
<<set $dialogue003ready to 1>>
/% GIRL_DATA
{
"id": "g2",
"slot": 2,
"first": "Iris",
"last": "Moon",
"name": "Iris Moon",
"age": 22,
"avatar": "🎨",
"style": "dreamy",
"difficulty": -15,
"bio": "Iris Moon is an art student and mural assistant who seems older than her confidence. She drifts through rooms like she is half watching the light and half looking for somewhere to disappear. She notices color, posture, shadows, and the small expressions people make when they think no one is looking, but she rarely trusts her own place in the scene. Iris is not passive because she has no desires. She is passive because desire makes her feel too visible. With patience, she warms into a shy, eager softness that is not domestic like Hazel's, but visual and dreamy: the observer slowly becoming the subject.",
"personality": [
"dreamy",
"aloof",
"insecure"
],
"inclinations": [
"art as a hiding place",
"photography as proof",
"observer becoming the subject",
"visual shame and arousal",
"needs gentle encouragement"
],
"socialLinks": [
{
"girlId": "g19",
"name": "Amara West",
"relationship": "mural contact",
"how": "Amara told Iris about a legal wall after one of her older murals was painted over."
},
{
"girlId": "g1",
"name": "Zoe Bellamy",
"relationship": "repair customer",
"how": "She took her paint-splashed laptop to Zoe when it started failing before a deadline."
},
{
"girlId": "g15",
"name": "Keira Lane",
"relationship": "photography collaborator",
"how": "Keira photographs Iris's murals before weather and tags ruin them."
},
{
"girlId": "g6",
"name": "Valerie King",
"relationship": "gallery contact",
"how": "Valerie gave Iris a short, practical portfolio review after seeing one of her drawings."
},
{
"girlId": "g5",
"name": "Sofia Reed",
"relationship": "event contact",
"how": "Sofia played a short set at one of Iris's mural openings."
}
],
"details": {
"eyeColor": "brown",
"eyeShape": "soft eyes",
"hairColor": "blonde",
"hairStyle": "in curls",
"hairLength": "very long",
"hairTexture": "silky",
"skinTone": "deep brown skin",
"skinDetail": "freckles",
"height": "average height",
"bodyShape": "a curvy build",
"bustSize": "a small bust",
"buttSize": "a round butt",
"waist": "a soft waist",
"legs": "toned legs",
"faceShape": "round face",
"lips": "wide smile",
"eyebrows": "dark brows",
"voice": "a soft voice",
"makeup": "no makeup",
"scent": "vanilla",
"nails": "painted nails",
"tattoos": "an ankle tattoo",
"piercings": "a nose stud",
"posture": "a restless posture",
"demeanor": "dreamy",
"top": "a fitted jacket",
"bottom": "a pair of jeans",
"outfitFit": "work-ready",
"underwear": "plain underwear",
"shoes": "a pair of heels",
"accessories": "no accessories",
"perfumeStrength": "subtle",
"movement": "quick steps",
"laugh": "a nervous laugh",
"hobby": "art",
"occupation": "art student and mural assistant"
},
"interests": {
"cooking": 51,
"sports": 44,
"informatic": 15,
"finance": 8,
"art": 93,
"photography": 67,
"music": 45
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 17
},
"positionPrefs": {
"kissing": 14,
"touching": 23,
"breast_sensitivity": 49,
"legs_sensitivity": 9,
"receiving_oral": 9,
"giving_oral": 14,
"swallowing": 68,
"sixty_nine": 24,
"missionary": 65,
"cowgirl": 14,
"reverse_cowgirl": 43,
"doggy": 35,
"wall": 33,
"vaginal_sensitivity": 14,
"anal_sensitivity": 24,
"ass_sensitivity": 26,
"breast_sex": 34,
"fingering": 12,
"handjob": 88,
"undressing": 25,
"exhibitionism": 77,
"massage": 43
},
"routine": {
"home": "loc3",
"work": "loc11",
"favorite": "loc6",
"weekend": "loc7",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "looking for light and faces"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 45,
"fallback": "visiting the quiet upper blocks"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "looking for light and faces"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 82,
"fallback": "working on illustrations"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Midday": {
"label": "Midday",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "looking for light and faces"
},
"Morning": {
"label": "Morning",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 003",
"bioStages": [
{
"knowledge": 20,
"text": "Iris studies art and helps with murals, but she often acts like she is only temporarily allowed near the work. She carries brushes, mixes colors, watches people pose, and notices details faster than she volunteers an opinion. When someone asks what she thinks, she usually answers softly and then looks nervous that she said too much."
},
{
"knowledge": 40,
"text": "Her aloofness is partly defense. Iris can look distant, distracted, or impossible to read, but most of that comes from insecurity rather than confidence. She trusts sketches and photos because they let her hold a moment still without having to prove she belongs inside it."
},
{
"knowledge": 60,
"text": "Iris is most comfortable when attention has an excuse: a drawing, a photograph, a pose, a reference, a shared joke about light or color. Direct attention makes her flustered, especially if it is kind. She believes criticism faster than praise, which makes genuine encouragement affect her more than she wants to admit."
},
{
"knowledge": 80,
"text": "Her sexuality has the same contradiction as her art. She is drawn to being seen, but being seen scares her. A patient gaze can affect her more than bold praise, especially when it catches a detail she thought was hidden: the shift of her hips, her mouth opening, her thighs tensing, the moment her body gives away a want before she finds words for it."
},
{
"knowledge": 100,
"text": "With trust, Iris stops treating desire like something she has to observe from outside herself. She is still dreamy, still awkward, still older than Hazel but less sure of herself than she appears. When she finally gives in, she does not become loud or commanding. She becomes visible: flushed, wet, trembling, explicit, and unable to hide the exact moment her body turns into the image she used to be afraid of becoming."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(2)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 003">>
<<= setup.CC.view("girl") >><<set $photo004ready to 1>>
/% VIDEO_LIST: none %/
<<set $dialogue004ready to 1>>
/% GIRL_DATA
{
"id": "g3",
"slot": 3,
"first": "Tessa",
"last": "Grant",
"name": "Tessa Grant",
"age": 27,
"avatar": "💼",
"style": "controlled",
"difficulty": 2,
"bio": "Tessa Grant is a financial analyst with polished manners, athletic discipline, and a smile that can close a conversation without raising her voice. She is private, competitive, and used to setting the terms before anyone else reaches for them.",
"personality": [
"assertive",
"private",
"competitive"
],
"inclinations": [
"finance",
"controlled undressing",
"private dominance"
],
"socialLinks": [
{
"girlId": "g0",
"name": "Maya Bell",
"relationship": "weekday lunch regular",
"how": "Tessa has lunch at Maya's cafe most weeks, usually after clearing a morning of reports."
},
{
"girlId": "g12",
"name": "Paige Sterling",
"relationship": "finance peer",
"how": "Paige and Tessa trade notes over coffee when one of them is stuck on a report."
},
{
"girlId": "g4",
"name": "Leah Cross",
"relationship": "gym client",
"how": "Leah writes Tessa's gym program and gets reminded when Tessa has skipped a week."
},
{
"girlId": "g10",
"name": "Clara Voss",
"relationship": "event budget contact",
"how": "Clara asks Tessa to look over small event budgets before they get approved."
}
],
"details": {
"eyeColor": "gray",
"eyeShape": "almond eyes",
"hairColor": "dark red",
"hairStyle": "straight",
"hairLength": "long",
"hairTexture": "silky",
"skinTone": "deep brown skin",
"skinDetail": "smooth complexion",
"height": "tall",
"bodyShape": "a toned build",
"bustSize": "a modest bust",
"buttSize": "wide hips and a fuller butt",
"waist": "a narrow waist",
"legs": "toned legs",
"faceShape": "a heart-shaped face",
"lips": "wide smile",
"eyebrows": "dark brows",
"voice": "a calm voice",
"makeup": "light makeup",
"scent": "coffee",
"nails": "clean-polished nails",
"tattoos": "no visible tattoos",
"piercings": "a nose stud",
"posture": "a restless posture",
"demeanor": "controlled",
"top": "a fitted jacket",
"bottom": "a pair of jeans",
"outfitFit": "stylish",
"underwear": "a lace underwear set",
"shoes": "a pair of sneakers",
"accessories": "a watch",
"perfumeStrength": "light",
"movement": "quick steps",
"laugh": "a quiet laugh",
"hobby": "finance",
"occupation": "financial analyst"
},
"interests": {
"cooking": 2,
"sports": 59,
"informatic": 55,
"finance": 94,
"art": 29,
"photography": 47,
"music": 32
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 86
},
"positionPrefs": {
"kissing": 13,
"touching": 16,
"breast_sensitivity": 47,
"legs_sensitivity": 21,
"receiving_oral": 75,
"giving_oral": 26,
"swallowing": 13,
"sixty_nine": 10,
"missionary": 28,
"cowgirl": 76,
"reverse_cowgirl": 13,
"doggy": 11,
"wall": 7,
"vaginal_sensitivity": 32,
"anal_sensitivity": 82,
"ass_sensitivity": 50,
"breast_sex": 13,
"fingering": 41,
"handjob": 18,
"undressing": 91,
"exhibitionism": 11,
"massage": 16
},
"routine": {
"home": "loc4",
"work": "loc13",
"favorite": "loc6",
"weekend": "loc7",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 70,
"fallback": "near office clients"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 70,
"fallback": "near office clients"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 45,
"fallback": "passing through the cheaper blocks"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc13",
"chance": 82,
"fallback": "at the finance desk"
},
"Evening": {
"label": "Evening",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 004",
"bioStages": [
{
"knowledge": 20,
"text": "Tessa treats self-control like capital. Her calendar is tight, her gym bag is packed, and she has no patience for sloppy timing. She does not care about cooking beyond fuel, and casual touching earns analysis before warmth. Attraction starts when someone proves useful under pressure: clean answers, quick thinking, and enough backbone to meet her directly without wasting her time."
},
{
"knowledge": 40,
"text": "She learned money through fear before she learned it through finance. As a teenager, she watched adults smile through overdraft notices, favors with hooks, and relatives who made emergencies contagious. That history made her ambitious, but also almost violently private. Tessa does not like witnesses when she loses composure. Doors locked, phones down, risks named clearly: that is how she convinces herself desire is still a decision."
},
{
"knowledge": 60,
"text": "Her dirtiest habit is ritualized undressing. Not spontaneous mess, not public teasing, not being pawed at before she has chosen the scene. Jacket first, watch next, blouse button by button, each piece folded somewhere deliberate. The strip is powerful because she controls the pace and makes you understand that permission is not access. The real heat is in the waiting, and in the fact that careful attention can make her wet before a hand ever reaches her skin."
},
{
"knowledge": 80,
"text": "Tessa is less exhibitionistic than people assume. Her fantasies are private, expensive, and tightly controlled: clean sheets, blackout curtains, a locked office after everyone else has left. She likes being on top because the pace stays hers. She likes receiving oral because competence is easiest to judge when your mouth is between her thighs. Anal is not a casual dare for her. It is a serious trust test, the most private surrender she allows, and even then she wants to set every term while her tight ass opens by degrees."
},
{
"knowledge": 95,
"text": "Tessa does not secretly want to be beaten at her own game. She wants someone strong enough that choosing them never feels like lowering her standards. She wants to ride you until her control cracks and still make you earn the next inch. She wants your mouth focused enough to make her stop correcting you. If she lets you have her ass, it is not weakness or shock value. It means she trusts you enough to fall apart while still telling you exactly how to fuck her."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(3)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 004">>
<<= setup.CC.view("girl") >><<set $photo005ready to 1>>
<<set $dialogue005ready to 1>>
/% GIRL_DATA
{
"id": "g4",
"slot": 4,
"first": "Leah",
"last": "Cross",
"name": "Leah Cross",
"age": 25,
"avatar": "🏋️",
"style": "athletic owner",
"difficulty": -3,
"bio": "Leah Cross owns Iron Circuit, a gym that looks rougher than it runs. She opens before sunrise, fixes machines when they break, and has no patience for people who treat strength like a costume. She is blunt, protective, and difficult to impress, but she notices effort before charm. If someone keeps showing up, listens when corrected, and does not confuse pride with courage, Leah starts standing closer.",
"personality": [
"direct",
"protective",
"physically intense"
],
"inclinations": [
"rewards real effort",
"trust through touch",
"wall sex fantasy",
"hates reckless pride"
],
"socialLinks": [
{
"girlId": "g13",
"name": "Bianca Rowe",
"relationship": "referral partner",
"how": "Bianca sends clients who need their posture fixed; Leah sends sore clients back to Bianca after hard training blocks."
},
{
"girlId": "g3",
"name": "Tessa Grant",
"relationship": "gym client",
"how": "Tessa trains with Leah after work and gets a message if she vanishes for too long."
},
{
"girlId": "g9",
"name": "Rita Fox",
"relationship": "summer training acquaintance",
"how": "Rita and Leah use the same beach path when they are training early in summer."
},
{
"girlId": "g19",
"name": "Amara West",
"relationship": "courier fitness contact",
"how": "Amara asked Leah for a conditioning plan that would help with long courier shifts."
}
],
"details": {
"eyeColor": "bright teal",
"eyeShape": "sharp almond eyes",
"hairColor": "pink hair with blue-dyed tips",
"hairStyle": "falling around her face",
"hairLength": "long",
"hairTexture": "wavy",
"skinTone": "warm tan skin",
"skinDetail": "smooth complexion",
"height": "medium height",
"bodyShape": "a fit athletic build",
"bustSize": "a full bust",
"buttSize": "a firm round butt",
"waist": "a tight waist",
"legs": "strong legs",
"faceShape": "a neat sharp jaw",
"lips": "glossed lips",
"eyebrows": "clean dark brows",
"voice": "a firm gym-floor voice",
"makeup": "gold eye makeup",
"scent": "citrus",
"nails": "dark-polished nails",
"tattoos": "a hidden tattoo",
"piercings": "a nose stud",
"posture": "upright coaching posture",
"demeanor": "focused and demanding",
"top": "a teal athletic zip jacket",
"bottom": "a pair of fitted track pants",
"outfitFit": "sporty and clean",
"underwear": "simple athletic underwear",
"shoes": "a pair of gym trainers",
"accessories": "a small nose stud",
"perfumeStrength": "barely there",
"movement": "quick, controlled steps",
"laugh": "a short restrained laugh",
"hobby": "lifting and gym repair",
"occupation": "gym owner and fitness coach"
},
"interests": {
"cooking": 34,
"sports": 94,
"informatic": 14,
"finance": 24,
"art": 26,
"photography": 38,
"music": 52
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 74
},
"positionPrefs": {
"kissing": 22,
"touching": 84,
"breast_sensitivity": 12,
"legs_sensitivity": 48,
"receiving_oral": 18,
"giving_oral": 28,
"swallowing": 79,
"sixty_nine": 16,
"missionary": 28,
"cowgirl": 22,
"reverse_cowgirl": 17,
"doggy": 44,
"wall": 82,
"vaginal_sensitivity": 32,
"anal_sensitivity": 13,
"ass_sensitivity": 28,
"breast_sex": 18,
"fingering": 20,
"handjob": 30,
"undressing": 72,
"exhibitionism": 34,
"massage": 46
},
"routine": {
"home": "loc4",
"work": "loc1",
"favorite": "loc8",
"weekend": "loc9",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Morning": {
"label": "Morning",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Midday": {
"label": "Midday",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Evening": {
"label": "Evening",
"loc": "loc8",
"chance": 62,
"fallback": "keeping her legs moving"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Morning": {
"label": "Morning",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Morning": {
"label": "Morning",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Midday": {
"label": "Midday",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 45,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Morning": {
"label": "Morning",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Midday": {
"label": "Midday",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 64,
"fallback": "near the waterline"
},
"Midday": {
"label": "Midday",
"loc": "loc8",
"chance": 62,
"fallback": "keeping her legs moving"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 45,
"fallback": "passing through the cheaper blocks"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 64,
"fallback": "near the waterline"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 82,
"fallback": "coaching at the gym"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc12",
"chance": 45,
"fallback": "moving across the city"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 005",
"bioStages": [
{
"knowledge": 20,
"text": "Leah owns Iron Circuit, not just the keys. She opens before sunrise, cleans chalk out of the deadlift platform, fixes cable machines with a wrench from her office, and knows which beginners are pretending not to be nervous. Her coaching is blunt because she would rather annoy someone than watch them get hurt. She does not care who looks impressive for one set. She cares who comes back next week and moves better."
},
{
"knowledge": 40,
"text": "She used to compete until a bad meet damaged her shoulder and burned the lesson in permanently. It was not one dramatic accident. It was ego, noise, a bad spotter, and a room full of people cheering a lift that should have been stopped. Leah hates reckless strength because she has felt the cost of it in her own body. That is why she corrects form before she compliments muscle."
},
{
"knowledge": 60,
"text": "Leah warms up when effort becomes consistent. She starts correcting from closer range, presses a hand between your shoulders to fix posture, taps your knee into position, and pretends those small touches are only coaching. She likes sweat, breath, grip, and the honesty of a body doing real work. Big talk does nothing for her. A tired person trying again can hold her attention all day."
},
{
"knowledge": 80,
"text": "Touch matters to Leah because she spends most of her day keeping touch professional. When she finally wants hands on her, she wants them direct and sure. Not pawing, not worship, not timid hovering. Hold her hips, press her to the wall, pull her close enough that she has to trust your strength. The wall fantasy is not about being trapped. It is about being met by someone steady enough that she can stop carrying all the weight alone."
},
{
"knowledge": 100,
"text": "Leah's hidden softness is not fragile. It is private, physical, and hard-earned. Undressing her feels like being let past armor she has worn so long she forgot it was armor. When she gives in, she is still blunt, still demanding, still Leah, but the hunger under it is much less guarded. She wants to be held hard, fucked close, and taken seriously when she says more. When she gets on her knees, she does not dress it up as softness. She likes the weight of the choice, the mess of it, and the look on your face when she does not flinch."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(4)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 005">>
<<= setup.CC.view("girl") >><<set $photo006ready to 1>>
/% VIDEO_LIST: missionary %/
<<set $dialogue006ready to 1>>
/% GIRL_DATA
{
"id": "g5",
"slot": 5,
"first": "Sofia",
"last": "Reed",
"name": "Sofia Reed",
"age": 21,
"avatar": "🎧",
"style": "neon club singer",
"difficulty": 1,
"bio": "Sofia Reed lives between club doors, borrowed stages, last trains, and the kind of applause that disappears before rent is paid. She sings anywhere with a working mic, flirts like she is getting away with something, and reads a room faster than most people read a text. The stage smile is real, but it is not the whole woman. Sofia likes noise, attention, kissing in loud places, and people who can tell the difference between wanting her and wanting the performance.",
"personality": [
"playful",
"street-smart",
"restless"
],
"inclinations": [
"lives for music and crowd heat",
"likes kissing in loud places",
"enjoys being watched on her terms",
"reverse cowgirl fantasy",
"protects the woman behind the stage smile"
],
"socialLinks": [
{
"girlId": "g7",
"name": "Hazel Mercer",
"relationship": "regular audience",
"how": "Hazel sometimes comes to Sofia's smaller shows and waits until after the set to say hello."
},
{
"girlId": "g16",
"name": "Diana Rook",
"relationship": "streaming contact",
"how": "Diana has streamed one of Sofia's local sets and still has the recording saved."
},
{
"girlId": "g14",
"name": "Hana Sato",
"relationship": "music-scene acquaintance",
"how": "Hana and Sofia keep ending up on the same small bills and share a late meal after shows."
},
{
"girlId": "g18",
"name": "Selene Black",
"relationship": "nightlife coworker",
"how": "Selene has worked the door on nights when Sofia was singing inside."
},
{
"girlId": "g2",
"name": "Iris Moon",
"relationship": "event contact",
"how": "She played a short set at one of Iris's mural openings."
}
],
"details": {
"eyeColor": "hazel",
"eyeShape": "almond eyes",
"hairColor": "black",
"hairStyle": "in braids",
"hairLength": "shoulder-length",
"hairTexture": "soft",
"skinTone": "deep brown skin",
"skinDetail": "sun-kissed skin",
"height": "short",
"bodyShape": "an athletic build",
"bustSize": "a generous bust",
"buttSize": "a round butt",
"waist": "a soft waist",
"legs": "long legs",
"faceShape": "a sharp jaw",
"lips": "full lips",
"eyebrows": "arched brows",
"voice": "a confident voice",
"makeup": "bold lipstick",
"scent": "floral perfume",
"nails": "painted nails",
"tattoos": "a small wrist tattoo",
"piercings": "no piercings",
"posture": "a relaxed posture",
"demeanor": "social",
"top": "a fitted tee",
"bottom": "a skirt",
"outfitFit": "casual",
"underwear": "soft cotton underwear",
"shoes": "a pair of sneakers",
"accessories": "a bracelet",
"perfumeStrength": "strong",
"movement": "quick steps",
"laugh": "a nervous laugh",
"hobby": "writing hooks on her phone",
"occupation": "club singer and session musician"
},
"interests": {
"cooking": 26,
"sports": 20,
"informatic": 20,
"finance": 46,
"art": 56,
"photography": 34,
"music": 96
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 56
},
"positionPrefs": {
"kissing": 76,
"touching": 30,
"breast_sensitivity": 20,
"legs_sensitivity": 25,
"receiving_oral": 30,
"giving_oral": 22,
"swallowing": 7,
"sixty_nine": 28,
"missionary": 18,
"cowgirl": 34,
"reverse_cowgirl": 78,
"doggy": 28,
"wall": 40,
"vaginal_sensitivity": 44,
"anal_sensitivity": 14,
"ass_sensitivity": 68,
"breast_sex": 16,
"fingering": 28,
"handjob": 21,
"undressing": 34,
"exhibitionism": 70,
"massage": 18
},
"routine": {
"home": "loc3",
"work": "loc5",
"favorite": "loc7",
"weekend": "loc9",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "in campus practice"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "in campus practice"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 82,
"fallback": "in campus practice"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "meeting over coffee"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "in campus practice"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "in campus practice"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 45,
"fallback": "visiting the quiet upper blocks"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "in campus practice"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 45,
"fallback": "checking rehearsal space"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "in campus practice"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "in campus practice"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "in campus practice"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 64,
"fallback": "near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 45,
"fallback": "meeting over coffee"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 64,
"fallback": "near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 62,
"fallback": "following the music"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 006",
"bioStages": [
{
"knowledge": 20,
"text": "Sofia knows the club circuit from the ugly side: late buses, missing drink tickets, DJs who forget names, managers who call exposure a paycheck, and rooms that love a song but forget the singer. She still walks in dressed like the night belongs to her because sometimes it actually does."
},
{
"knowledge": 40,
"text": "Music is not decoration for Sofia. It is how she keeps moving when the city tries to make everything transactional. She studies crowds, learns which songs make strangers look up, and remembers every bartender, sound tech, bouncer, and booker who can turn a dead night into paid work."
},
{
"knowledge": 60,
"text": "Her confidence is real, but it has rent behind it. Sofia can laugh through a bad set, charm a room that barely deserves her, and then go quiet outside while counting whether the night was worth it. She likes people who notice the hustle without making her explain it."
},
{
"knowledge": 80,
"text": "Sofia likes public spark: a kiss near the speakers, a hand at her waist while she looks back over her shoulder, a glance that says she knows exactly who is watching. She enjoys being wanted, especially when she gets to decide how much of herself the room gets to see. Attention on her ass gets under her skin fast, but it is a flavor of the performance, not the whole song."
},
{
"knowledge": 100,
"text": "When Sofia trusts you, the stage smile drops into something warmer, messier, and more dangerous because it is not for the room anymore. She wants fun without begging for permission, attention without being owned by it, and sex that lets her feel like the star without having to perform for anyone but you."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(5)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 006">>
<<= setup.CC.view("girl") >><<set $photo007ready to 1>>
/% VIDEO_LIST: blowjob, missionary, doggy sex, doggy anal, standwall sex %/
<<set $dialogue007ready to 1>>
/% GIRL_DATA
{
"id": "g6",
"slot": 6,
"first": "Valerie",
"last": "King",
"name": "Valerie King",
"age": 31,
"avatar": "🖼️",
"style": "white-haired goth gallery director",
"difficulty": 6,
"bio": "Valerie King runs a small art gallery with the quiet severity of someone who learned that taste does not need to raise its voice. She dresses like mourning was invited to tea, keeps her white hair immaculate, and can make a donor, artist, or courier lower their volume with one look. She is not cold so much as carefully arranged. The gallery depends on her because she notices what everyone else misses: bad lighting, false praise, nervous hands, and the tiny moment when someone stops pretending to understand a painting.",
"personality": [
"reserved",
"dry",
"observant"
],
"inclinations": [
"quiet gallery authority",
"loves her clothes",
"leg-focused visual tension",
"private sixty-nine fixation",
"specific attention breaks composure"
],
"socialLinks": [
{
"girlId": "g2",
"name": "Iris Moon",
"relationship": "gallery contact",
"how": "Valerie gave Iris a short portfolio review and later introduced her to a quieter studio hour."
},
{
"girlId": "g15",
"name": "Keira Lane",
"relationship": "photography collaborator",
"how": "Keira photographs small gallery openings for Valerie when the usual photographer is booked."
},
{
"girlId": "g11",
"name": "Mina Hart",
"relationship": "archive helper",
"how": "Mina helps Valerie sort old catalogues and scans when the gallery needs a second pair of hands."
},
{
"girlId": "g14",
"name": "Hana Sato",
"relationship": "recital contact",
"how": "Hana has played brief sets at two of Valerie's gallery openings."
},
{
"girlId": "g10",
"name": "Clara Voss",
"relationship": "event logistics contact",
"how": "Clara handles practical opening details when Valerie has too much on her desk."
}
],
"details": {
"eyeColor": "dark brown",
"eyeShape": "almond eyes",
"hairColor": "silver-dyed",
"hairStyle": "in a sleek ponytail",
"hairLength": "short",
"hairTexture": "thick",
"skinTone": "deep brown skin",
"skinDetail": "clear skin",
"height": "tall",
"bodyShape": "a toned build",
"bustSize": "a generous bust",
"buttSize": "a firm butt",
"waist": "a defined waist",
"legs": "slim legs",
"faceShape": "a sharp jaw",
"lips": "full lips",
"eyebrows": "arched brows",
"voice": "a bright voice",
"makeup": "no makeup",
"scent": "coffee",
"nails": "painted nails",
"tattoos": "a hidden tattoo",
"piercings": "no piercings",
"posture": "a restless posture",
"demeanor": "commanding",
"top": "a fitted jacket",
"bottom": "a pair of shorts",
"outfitFit": "carefully matched",
"underwear": "a matching underwear set",
"shoes": "a pair of boots",
"accessories": "a watch",
"perfumeStrength": "barely there",
"movement": "quick steps",
"laugh": "a dry laugh",
"hobby": "private collection notes",
"occupation": "art gallery director"
},
"interests": {
"cooking": 14,
"sports": 12,
"informatic": 20,
"finance": 42,
"art": 94,
"photography": 82,
"music": 44
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 47
},
"positionPrefs": {
"kissing": 48,
"touching": 26,
"breast_sensitivity": 28,
"legs_sensitivity": 97,
"receiving_oral": 42,
"giving_oral": 36,
"swallowing": 14,
"sixty_nine": 88,
"missionary": 34,
"cowgirl": 18,
"reverse_cowgirl": 30,
"doggy": 44,
"wall": 32,
"vaginal_sensitivity": 42,
"anal_sensitivity": 24,
"ass_sensitivity": 24,
"breast_sex": 14,
"fingering": 28,
"handjob": 20,
"undressing": 7,
"exhibitionism": 36,
"massage": 24
},
"routine": {
"home": "loc4",
"work": "loc11",
"favorite": "loc10",
"weekend": "loc7",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "managing the gallery"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 62,
"fallback": "handling office-side errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 82,
"fallback": "managing the gallery"
},
"Evening": {
"label": "Evening",
"loc": "loc10",
"chance": 62,
"fallback": "handling office-side errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "managing the gallery"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 70,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Evening": {
"label": "Evening",
"loc": "loc10",
"chance": 62,
"fallback": "handling office-side errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 62,
"fallback": "handling office-side errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 82,
"fallback": "managing the gallery"
},
"Evening": {
"label": "Evening",
"loc": "loc10",
"chance": 62,
"fallback": "handling office-side errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "looking for light and faces"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "managing the gallery"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 62,
"fallback": "handling office-side errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 62,
"fallback": "handling office-side errands"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "managing the gallery"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 62,
"fallback": "handling office-side errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 82,
"fallback": "managing the gallery"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Midday": {
"label": "Midday",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 62,
"fallback": "handling office-side errands"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "looking for light and faces"
},
"Morning": {
"label": "Morning",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Evening": {
"label": "Evening",
"loc": "loc10",
"chance": 62,
"fallback": "handling office-side errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 45,
"fallback": "passing through the cheaper blocks"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 007",
"bioStages": [
{
"knowledge": 20,
"text": "Valerie handles the gallery's fragile ecosystem: collectors who want to sound profound, artists pretending not to panic, invoices, wall labels, lighting, shipping forms, and openings where everyone talks too loudly near expensive things. She does not dominate the room. She lowers the temperature until people start behaving."
},
{
"knowledge": 40,
"text": "Her goth style is not decoration. It is control over what kind of attention reaches her. The black lace, structured bodices, long skirts, white hair, and dark lipstick make people look carefully or not at all. Valerie prefers that. Careless attention feels worse to her than silence."
},
{
"knowledge": 60,
"text": "She loves her clothes because they let her choose the shape of herself before anyone else gets an opinion. Undressing her is not easy because the outfit is not packaging. It is armor, taste, mood, and warning. If she lets someone past it, the moment has to matter."
},
{
"knowledge": 80,
"text": "Valerie is more sensitive to specific visual attention than she admits, especially when it settles on details she thought were safely composed: crossed legs under a long skirt, pale ankles, calves half hidden by fabric, the slow shift of her thighs when she sits. Crude staring is easy to dismiss. Exact attention is harder."
},
{
"knowledge": 100,
"text": "With trust, Valerie's stillness becomes less defensive and more intimate. She does not become loud or easy, but the distance thins. She wants to be wanted carefully, touched through the tension she built around herself, and drawn into sex private enough to ruin her composure without turning her into someone else."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(6)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 007">>
<<= setup.CC.view("girl") >><<set $photo008ready to 1>>
<<set $dialogue008ready to 1>>
/% GIRL_DATA
{
"id": "g7",
"slot": 7,
"first": "Hazel",
"last": "Mercer",
"name": "Hazel Mercer",
"age": 24,
"avatar": "🍞",
"style": "soft-spoken kitchen helper",
"difficulty": -10,
"bio": "Hazel Mercer works as a kitchen helper in the kind of place where the morning starts too early, the floor is always a little damp, and someone is always asking where the clean towels went. She is not a chef and does not pretend to be one. She chops, rinses, carries, wipes counters, restocks, hums along to whatever music is playing, and quietly keeps the room from falling apart around louder people. Hazel is sweet, shy, and too quick to apologize, but there is more under the soft sweater and careful smile than people usually notice. She likes simple comforts, gentle attention, and the feeling of being useful. When desire gets direct, she folds faster than she expects, especially when someone pins her close enough that she cannot hide behind politeness.",
"personality": [
"sweet",
"shy",
"accommodating"
],
"inclinations": [
"quiet kitchen helper",
"uses music to stay cheerful",
"comfort through massage",
"eager to please",
"dirty oral streak",
"likes being pinned against a wall"
],
"socialLinks": [
{
"girlId": "g0",
"name": "Maya Bell",
"relationship": "cafe regular",
"how": "She stops at Maya's cafe before early shifts; Maya lets her take home food that will not keep until morning."
},
{
"girlId": "g5",
"name": "Sofia Reed",
"relationship": "regular audience",
"how": "Hazel follows Sofia's small shows when they are close enough to get home by bus."
},
{
"girlId": "g17",
"name": "Olivia Stone",
"relationship": "kitchen acquaintance",
"how": "Olivia has shown Hazel a few cheap staff meals that do not fall apart after a long shift."
},
{
"girlId": "g11",
"name": "Mina Hart",
"relationship": "cafe and library acquaintance",
"how": "Mina studies at Maya's cafe often enough that Hazel knows her order."
}
],
"details": {
"eyeColor": "green",
"eyeShape": "almond eyes",
"hairColor": "auburn",
"hairStyle": "in a messy bun",
"hairLength": "long",
"hairTexture": "thick",
"skinTone": "brown skin",
"skinDetail": "freckles",
"height": "tall",
"bodyShape": "a slim build",
"bustSize": "a small bust",
"buttSize": "wide hips and a fuller butt",
"waist": "a soft waist",
"legs": "curvy legs",
"faceShape": "a sharp jaw",
"lips": "full lips",
"eyebrows": "arched brows",
"voice": "a bright voice",
"makeup": "natural makeup",
"scent": "vanilla",
"nails": "clean-polished nails",
"tattoos": "a hidden tattoo",
"piercings": "multiple earrings",
"posture": "an athletic stance",
"demeanor": "practical",
"top": "a loose sweater",
"bottom": "a pair of jeans",
"outfitFit": "practical",
"underwear": "a lace underwear set",
"shoes": "a pair of boots",
"accessories": "a bracelet",
"perfumeStrength": "strong",
"movement": "quick steps",
"laugh": "a quiet laugh",
"hobby": "testing cheap recipes",
"occupation": "kitchen helper"
},
"interests": {
"cooking": 55,
"sports": 34,
"informatic": 14,
"finance": 12,
"art": 44,
"photography": 42,
"music": 55
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 8
},
"positionPrefs": {
"kissing": 42,
"touching": 16,
"breast_sensitivity": 42,
"legs_sensitivity": 28,
"receiving_oral": 30,
"giving_oral": 92,
"swallowing": 84,
"sixty_nine": 20,
"missionary": 26,
"cowgirl": 10,
"reverse_cowgirl": 8,
"doggy": 36,
"wall": 96,
"vaginal_sensitivity": 62,
"anal_sensitivity": 16,
"ass_sensitivity": 22,
"breast_sex": 38,
"fingering": 24,
"handjob": 32,
"undressing": 18,
"exhibitionism": 14,
"massage": 46
},
"routine": {
"home": "loc3",
"work": "loc6",
"favorite": "loc2",
"weekend": "loc8",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Evening": {
"label": "Evening",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 45,
"fallback": "visiting the quiet upper blocks"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Evening": {
"label": "Evening",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Evening": {
"label": "Evening",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 45,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 82,
"fallback": "on kitchen prep"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 008",
"bioStages": [
{
"knowledge": 20,
"text": "Hazel's work is not glamorous. She preps ingredients, carries trays, washes tools, restocks shelves, and tries to solve small problems before anyone turns them into big ones. She is used to being thanked quickly or not at all, which is probably why genuine attention makes her blush so easily."
},
{
"knowledge": 40,
"text": "Cooking matters to Hazel because it is work, routine, and usefulness, not because she dreams about perfect recipes. Music matters more emotionally. A good playlist can get her through a long shift, keep her hands moving, and make a dull afternoon feel less lonely."
},
{
"knowledge": 60,
"text": "Hazel has mild interests in a lot of things rather than one grand passion. She likes pretty photos, handmade objects, easy songs, warm rooms, and people who do not make her defend every small preference. She usually lets stronger personalities take the lead, then quietly remembers what made them happy."
},
{
"knowledge": 80,
"text": "Her shyness becomes obvious around clothes and attention. Undressing makes her nervous because it feels like losing the soft buffer she uses to move through the world. Massage works better on her because it gives touch a reason to start gentle before it becomes something more intimate."
},
{
"knowledge": 100,
"text": "With trust, Hazel's private desires turn out to be much more direct than her daily voice. She wants to be guided without being mocked, held firmly without being scared, and wanted in ways that let her stop thinking for a while. A wall at her back, a hand steadying her jaw, a cock in her mouth, and the messy choice to swallow can undo her faster than any polished seduction."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(7)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 008">>
<<= setup.CC.view("girl") >><<set $photo009ready to 1>>
<<if $dialogue009ready is undefined>><<set $dialogue009ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g8",
"slot": 8,
"first": "Elena",
"last": "Park",
"name": "Elena Park",
"age": 26,
"avatar": "📊",
"style": "quiet data analyst",
"difficulty": 9,
"bio": "Elena Park works with reports, forecasts, and small machine-learning models. She listens more than she talks, and she is good at finding the detail everyone skipped. That does not make her cold. She is gentle with people who are honest with her, but she takes time to trust because she notices when a story stops adding up.",
"personality": [
"analytical",
"gentle",
"careful"
],
"inclinations": [
"likes clear explanations",
"likes fingers inside her",
"prefers sex from behind",
"takes time to trust"
],
"socialLinks": [
{
"girlId": "g1",
"name": "Zoe Bellamy",
"relationship": "library data contact",
"how": "Zoe sends Elena library usage exports when she needs help separating useful numbers from bad records."
},
{
"girlId": "g16",
"name": "Diana Rook",
"relationship": "stream analytics contact",
"how": "Diana brings Elena stream data when chat insists a format was a hit and the viewer numbers disagree."
},
{
"girlId": "g12",
"name": "Paige Sterling",
"relationship": "forecasting contact",
"how": "Paige gives Elena monthly accounts when a client wants a forecast instead of another backward-looking report."
},
{
"girlId": "g10",
"name": "Clara Voss",
"relationship": "event analytics contact",
"how": "Clara sends Elena attendance and ticket data after events. Elena points out which choices actually brought people in."
}
],
"details": {
"eyeColor": "green",
"eyeShape": "wide eyes",
"hairColor": "blue-black",
"hairStyle": "a short wavy bob, tucked behind one ear",
"hairLength": "chin-length",
"hairTexture": "thick and soft",
"skinTone": "light skin",
"skinDetail": "clear skin",
"height": "average height",
"bodyShape": "a soft build",
"bustSize": "a modest bust",
"buttSize": "a firm butt",
"waist": "a defined waist",
"legs": "curvy legs",
"faceShape": "oval face",
"lips": "glossy lips",
"eyebrows": "soft brows",
"voice": "a calm voice",
"makeup": "light makeup",
"scent": "coffee",
"nails": "dark-polished nails",
"tattoos": "a hidden tattoo",
"piercings": "a nose stud",
"posture": "a little closed off until the conversation gives her something solid",
"demeanor": "gentle, observant",
"top": "a soft rose blouse",
"bottom": "high-waisted beige trousers",
"outfitFit": "quiet office casual",
"underwear": "plain underwear",
"shoes": "a pair of sneakers",
"accessories": "a thin necklace",
"perfumeStrength": "barely there",
"movement": "small, unhurried movements when she is thinking",
"laugh": "a quiet laugh",
"hobby": "taking apart small machine-learning projects",
"occupation": "data analyst and machine-learning contractor"
},
"interests": {
"cooking": 24,
"sports": 40,
"informatic": 94,
"finance": 66,
"art": 28,
"photography": 18,
"music": 34
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 14
},
"positionPrefs": {
"kissing": 18,
"touching": 28,
"breast_sensitivity": 12,
"legs_sensitivity": 26,
"receiving_oral": 20,
"giving_oral": 36,
"swallowing": 43,
"sixty_nine": 34,
"missionary": 20,
"cowgirl": 22,
"reverse_cowgirl": 28,
"doggy": 78,
"wall": 32,
"vaginal_sensitivity": 38,
"anal_sensitivity": 28,
"ass_sensitivity": 22,
"breast_sex": 16,
"fingering": 90,
"handjob": 44,
"undressing": 62,
"exhibitionism": 20,
"massage": 16
},
"routine": {
"home": "loc4",
"work": "loc10",
"favorite": "loc5",
"weekend": "loc6",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 70,
"fallback": "meeting Paige about a forecast"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 64,
"fallback": "catching up over coffee"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 64,
"fallback": "catching up over coffee"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 45,
"fallback": "passing through the cheaper blocks"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "using a massage booking she keeps postponing"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 45,
"fallback": "doing a short gym session"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 64,
"fallback": "catching up over coffee"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 45,
"fallback": "looking over Clara's event material"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 82,
"fallback": "reviewing a client's data"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 64,
"fallback": "catching up over coffee"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 64,
"fallback": "catching up over coffee"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 64,
"fallback": "catching up over coffee"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "using a massage booking she keeps postponing"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 45,
"fallback": "checking in on one of Diana's streamed sets"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 64,
"fallback": "catching up over coffee"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 64,
"fallback": "catching up over coffee"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "using a massage booking she keeps postponing"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 64,
"fallback": "catching up over coffee"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 009",
"bioStages": [
{
"knowledge": 20,
"text": "Elena makes a living from reports that arrive almost usable. She checks dates, duplicated entries, and assumptions buried in the totals before she builds anything from them. Her clients call it cleaning. Elena calls it finding out what happened before somebody made a chart."
},
{
"knowledge": 40,
"text": "She took an evening course in machine learning after a client asked for a forecast she did not know how to make. At first she trained tiny models on public data at her kitchen table and kept notes on every failure. Now she prefers simple work she can explain to the person paying for it."
},
{
"knowledge": 60,
"text": "Elena is not combative when she disagrees. She asks where a number came from, listens to the answer, and asks again if it still does not fit. Friends find this patient until they are the ones who made the spreadsheet. Zoe appreciates it; Paige calls it the long way around being right."
},
{
"knowledge": 80,
"text": "Elena needs time before she feels comfortable being seen, especially without clothes. Once she trusts someone, she relaxes when they tell her plainly what they want. Fingers inside her get a much stronger response than most other foreplay. During sex she usually prefers to turn around, where she can concentrate on what she feels instead of wondering how she looks."
},
{
"knowledge": 100,
"text": "At full trust, Elena stops rehearsing every answer before she gives it. She talks about bad days, calls when she needs help, and laughs at herself without trying to turn it into a joke first. She still notices contradictions. The difference is that she now tells you why something hurt instead of simply stepping back."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(8)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 009">>
<<= setup.CC.view("girl") >><<set $photo010ready to 0>>
<<if $dialogue010ready is undefined>><<set $dialogue010ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g9",
"slot": 9,
"first": "Rita",
"last": "Fox",
"name": "Rita Fox",
"age": 22,
"avatar": "🌊",
"style": "beach lifeguard",
"difficulty": -4,
"bio": "Rita Fox is a lifeguard with sun in her hair, sand in every bag, and no patience for people who confuse confidence with safety. She looks unserious until something goes wrong. Then she is already moving.",
"personality": [
"playful",
"alert",
"sunny"
],
"inclinations": [
"legs obsession",
"footjob teasing",
"beach confidence",
"hates fake emergencies"
],
"socialLinks": [
{
"girlId": "g13",
"name": "Bianca Rowe",
"relationship": "recovery client",
"how": "Bianca works on Rita's calves and shoulders after busy weeks of running."
},
{
"girlId": "g4",
"name": "Leah Cross",
"relationship": "training acquaintance",
"how": "Rita and Leah use the same beach path when they are training early in summer."
},
{
"girlId": "g19",
"name": "Amara West",
"relationship": "running acquaintance",
"how": "Amara joins Rita for short beach runs when her courier route is quiet."
}
],
"details": {
"eyeColor": "blue",
"eyeShape": "soft eyes",
"hairColor": "auburn",
"hairStyle": "in waves",
"hairLength": "long",
"hairTexture": "thick",
"skinTone": "olive skin",
"skinDetail": "smooth complexion",
"height": "short",
"bodyShape": "an athletic build",
"bustSize": "a modest bust",
"buttSize": "a firm butt",
"waist": "a defined waist",
"legs": "toned legs",
"faceShape": "a heart-shaped face",
"lips": "full lips",
"eyebrows": "neat brows",
"voice": "a confident voice",
"makeup": "natural makeup",
"scent": "clean soap",
"nails": "short nails",
"tattoos": "a small wrist tattoo",
"piercings": "multiple earrings",
"posture": "a relaxed posture",
"demeanor": "restless",
"top": "a tank top",
"bottom": "a skirt",
"outfitFit": "casual",
"underwear": "a matching underwear set",
"shoes": "a pair of sneakers",
"accessories": "a watch",
"perfumeStrength": "subtle",
"movement": "slow movements",
"laugh": "a dry laugh",
"hobby": "beach running",
"occupation": "lifeguard"
},
"interests": {
"cooking": 32,
"sports": 90,
"informatic": 10,
"finance": 16,
"art": 28,
"photography": 46,
"music": 60
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 48
},
"positionPrefs": {
"kissing": 66,
"touching": 32,
"breast_sensitivity": 26,
"legs_sensitivity": 96,
"receiving_oral": 20,
"giving_oral": 28,
"swallowing": 23,
"sixty_nine": 24,
"missionary": 36,
"cowgirl": 28,
"reverse_cowgirl": 24,
"doggy": 24,
"wall": 16,
"vaginal_sensitivity": 40,
"anal_sensitivity": 8,
"ass_sensitivity": 20,
"breast_sex": 10,
"fingering": 18,
"handjob": 78,
"undressing": 36,
"exhibitionism": 48,
"massage": 22
},
"routine": {
"home": "loc3",
"work": "loc9",
"favorite": "loc1",
"weekend": "loc9",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Evening": {
"label": "Evening",
"loc": "loc8",
"chance": 45,
"fallback": "keeping her legs moving"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc12",
"chance": 45,
"fallback": "moving across the city"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Midday": {
"label": "Midday",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Midday": {
"label": "Midday",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 45,
"fallback": "visiting the quiet upper blocks"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 74,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 74,
"fallback": "out under the bass"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 82,
"fallback": "working near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 010",
"bioStages": [
{
"knowledge": 20,
"text": "Rita spends more time watching people than flirting with them. She spots the drunk swimmer, the kid drifting too far out, and the guy who wants a rescue to look romantic. The beach makes her playful. The job made her fast."
},
{
"knowledge": 40,
"text": "Her body is built by running on sand, climbing stands, dragging boards, and swimming when the water is cold enough to punish vanity. She likes her legs because they earned every line. Compliment them well and she beams. Make it cheap and she laughs you into the ground."
},
{
"knowledge": 60,
"text": "Rita is not shy, but she dislikes being cornered. She responds best to jokes, movement, and dares she can win. Sitting still makes her restless. Give her a reason to race you and she will remember the challenge."
},
{
"knowledge": 80,
"text": "Her leg fixation turns dirty once she trusts you. A foot on your thigh, a heel dragging down your stomach, her toes closing around your cock just to watch your face. She likes teasing from a position where she can still spring away laughing."
},
{
"knowledge": 100,
"text": "When Rita lets herself want, it stays bright and physical. She kisses hard, moves constantly, and turns embarrassment into a joke before it can slow her down. Under the jokes is a girl who wants to be chosen even after the rescue fantasy is gone."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(9)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 010">>
<<= setup.CC.view("girl") >><<set $photo011ready to 0>>
<<if $dialogue011ready is undefined>><<set $dialogue011ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g10",
"slot": 10,
"first": "Clara",
"last": "Voss",
"name": "Clara Voss",
"age": 29,
"avatar": "🍷",
"style": "event planner",
"difficulty": -11,
"bio": "Clara Voss plans events with clean lists, sharp shoes, and a smile that can kill a disaster before guests notice. She likes beauty, profit, and a room that behaves. Chaos annoys her because she is usually the one paid to clean it up.",
"personality": [
"elegant",
"strategic",
"composed"
],
"inclinations": [
"public risk",
"anal curiosity",
"social games",
"likes manners with dirt underneath"
],
"socialLinks": [
{
"girlId": "g17",
"name": "Olivia Stone",
"relationship": "catering contact",
"how": "Olivia handles food for some of Clara's smaller events and tells her when a menu is too ambitious."
},
{
"girlId": "g3",
"name": "Tessa Grant",
"relationship": "event budget contact",
"how": "Tessa checks small event budgets for Clara before they are approved."
},
{
"girlId": "g12",
"name": "Paige Sterling",
"relationship": "invoice contact",
"how": "Paige straightens out the invoices after Clara has booked too many things in a hurry."
},
{
"girlId": "g8",
"name": "Elena Park",
"relationship": "event analytics contact",
"how": "Clara sends Elena attendance and ticket data after events. Elena points out which choices actually brought people in."
},
{
"girlId": "g6",
"name": "Valerie King",
"relationship": "gallery logistics contact",
"how": "Clara handles practical opening details when Valerie has too much on her desk."
}
],
"details": {
"eyeColor": "green",
"eyeShape": "wide eyes",
"hairColor": "auburn",
"hairStyle": "straight",
"hairLength": "very long",
"hairTexture": "soft",
"skinTone": "olive skin",
"skinDetail": "freckles",
"height": "short",
"bodyShape": "a toned build",
"bustSize": "a modest bust",
"buttSize": "a round butt",
"waist": "a defined waist",
"legs": "slim legs",
"faceShape": "round face",
"lips": "a soft smile",
"eyebrows": "neat brows",
"voice": "a bright voice",
"makeup": "light makeup",
"scent": "floral perfume",
"nails": "short nails",
"tattoos": "an ankle tattoo",
"piercings": "multiple earrings",
"posture": "an athletic stance",
"demeanor": "elegant",
"top": "a fitted jacket",
"bottom": "a skirt",
"outfitFit": "practical",
"underwear": "plain underwear",
"shoes": "a pair of heels",
"accessories": "a thin necklace",
"perfumeStrength": "subtle",
"movement": "slow movements",
"laugh": "a bright laugh",
"hobby": "collecting venue gossip",
"occupation": "event planner"
},
"interests": {
"cooking": 28,
"sports": 22,
"informatic": 34,
"finance": 70,
"art": 68,
"photography": 54,
"music": 52
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 75
},
"positionPrefs": {
"kissing": 34,
"touching": 24,
"breast_sensitivity": 18,
"legs_sensitivity": 22,
"receiving_oral": 32,
"giving_oral": 20,
"swallowing": 86,
"sixty_nine": 44,
"missionary": 24,
"cowgirl": 30,
"reverse_cowgirl": 38,
"doggy": 24,
"wall": 42,
"vaginal_sensitivity": 36,
"anal_sensitivity": 72,
"ass_sensitivity": 32,
"breast_sex": 16,
"fingering": 24,
"handjob": 18,
"undressing": 46,
"exhibitionism": 92,
"massage": 18
},
"routine": {
"home": "loc4",
"work": "loc10",
"favorite": "loc11",
"weekend": "loc7",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 62,
"fallback": "checking art and photos"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 45,
"fallback": "passing through the cheaper blocks"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 62,
"fallback": "checking art and photos"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 62,
"fallback": "checking art and photos"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 70,
"fallback": "dealing with money errands"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 62,
"fallback": "checking art and photos"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 62,
"fallback": "checking art and photos"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 82,
"fallback": "handling client logistics"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 62,
"fallback": "checking art and photos"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Midday": {
"label": "Midday",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 62,
"fallback": "checking art and photos"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 011",
"bioStages": [
{
"knowledge": 20,
"text": "Clara lives in seating maps, contracts, flowers that arrive warm, and clients who change their minds after everything is printed. She makes it look graceful because panic is bad for business. Anyone who notices the work behind the smile earns a better version of it."
},
{
"knowledge": 40,
"text": "She understands money because events punish wishful thinking. A missing deposit can ruin a week. A badly priced room can eat the profit from an entire job. Clara has taste, but taste only matters if the invoice clears."
},
{
"knowledge": 60,
"text": "Her public streak grew out of work. She knows what a room notices, what it ignores, and how far a dress can slip before gossip starts doing the advertising for her. She enjoys that little danger more than she admits."
},
{
"knowledge": 80,
"text": "Clara likes dirty secrets wrapped in good manners. A hand at her back in a crowded hallway, a locked service door, a smile across a table that means something completely different. Anal curiosity fits her because it feels forbidden without being sloppy."
},
{
"knowledge": 100,
"text": "When Clara trusts you, the hostess act finally gets to rest. She still wants the world upstairs to look perfect. Downstairs, behind a door nobody should open, she wants someone who can make her stop managing every second and still keep the secret."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(10)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 011">>
<<= setup.CC.view("girl") >><<set $photo012ready to 0>>
<<if $dialogue012ready is undefined>><<set $dialogue012ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g11",
"slot": 11,
"first": "Mina",
"last": "Hart",
"name": "Mina Hart",
"age": 18,
"avatar": "🚌",
"style": "commuter student",
"difficulty": 2,
"bio": "Mina Hart is a commuter student who knows which cafes allow long study sessions and which streets feel better before dark. She is shy, overprepared, and much sharper than her nervous voice suggests.",
"personality": [
"shy",
"bright",
"overprepared"
],
"inclinations": [
"gentle kissing",
"breast sensitivity",
"slow guidance",
"specific praise"
],
"socialLinks": [
{
"girlId": "g7",
"name": "Hazel Mercer",
"relationship": "cafe and library acquaintance",
"how": "Hazel knows Mina's usual order from the cafe, and Mina saves her a quiet library desk when she has paperwork."
},
{
"girlId": "g1",
"name": "Zoe Bellamy",
"relationship": "library coworker",
"how": "Mina lets Zoe use the library workroom when a repair needs a clean desk and a reliable outlet."
},
{
"girlId": "g14",
"name": "Hana Sato",
"relationship": "student and performer contact",
"how": "Hana has helped with a small music group Mina runs through the library."
},
{
"girlId": "g6",
"name": "Valerie King",
"relationship": "archive helper",
"how": "Mina helps Valerie sort old catalogues and scans when the gallery needs a second pair of hands."
}
],
"details": {
"eyeColor": "gray",
"eyeShape": "soft eyes",
"hairColor": "blonde",
"hairStyle": "straight",
"hairLength": "long",
"hairTexture": "silky",
"skinTone": "deep brown skin",
"skinDetail": "beauty mark",
"height": "short",
"bodyShape": "a curvy build",
"bustSize": "a modest bust",
"buttSize": "a firm butt",
"waist": "a defined waist",
"legs": "long legs",
"faceShape": "a heart-shaped face",
"lips": "a soft smile",
"eyebrows": "dark brows",
"voice": "a calm voice",
"makeup": "natural makeup",
"scent": "clean soap",
"nails": "short nails",
"tattoos": "no visible tattoos",
"piercings": "a nose stud",
"posture": "a restless posture",
"demeanor": "shy",
"top": "a fitted jacket",
"bottom": "a skirt",
"outfitFit": "casual",
"underwear": "plain underwear",
"shoes": "a pair of boots",
"accessories": "no accessories",
"perfumeStrength": "light",
"movement": "quick steps",
"laugh": "a bright laugh",
"hobby": "study photography",
"occupation": "student and tutor"
},
"interests": {
"cooking": 50,
"sports": 12,
"informatic": 70,
"finance": 20,
"art": 38,
"photography": 64,
"music": 42
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 17
},
"positionPrefs": {
"kissing": 72,
"touching": 52,
"breast_sensitivity": 86,
"legs_sensitivity": 28,
"receiving_oral": 30,
"giving_oral": 12,
"swallowing": 86,
"sixty_nine": 20,
"missionary": 50,
"cowgirl": 14,
"reverse_cowgirl": 12,
"doggy": 16,
"wall": 9,
"vaginal_sensitivity": 40,
"anal_sensitivity": 7,
"ass_sensitivity": 30,
"breast_sex": 42,
"fingering": 38,
"handjob": 16,
"undressing": 32,
"exhibitionism": 20,
"massage": 44
},
"routine": {
"home": "loc3",
"work": "loc5",
"favorite": "loc12",
"weekend": "loc6",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "in study hours"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "in study hours"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 82,
"fallback": "in study hours"
},
"Evening": {
"label": "Evening",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "in study hours"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "in study hours"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 64,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "in study hours"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 82,
"fallback": "in study hours"
},
"Evening": {
"label": "Evening",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "in study hours"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 64,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "in study hours"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "in study hours"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Evening": {
"label": "Evening",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc12",
"chance": 62,
"fallback": "crossing the transit plaza"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 64,
"fallback": "coffee and conversation"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 64,
"fallback": "coffee and conversation"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Evening": {
"label": "Evening",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 64,
"fallback": "coffee and conversation"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Evening": {
"label": "Evening",
"loc": "loc4",
"chance": 45,
"fallback": "visiting the quiet upper blocks"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 45,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 012",
"bioStages": [
{
"knowledge": 20,
"text": "Mina carries too much because being unprepared scares her more than sore shoulders. Chargers, snacks, pens, a sweater, library books, backup notes. She is not helpless. She is used to solving problems quietly before anyone notices she had them."
},
{
"knowledge": 40,
"text": "Computers became practical for her before they became interesting. She fixed her own laptop because paying someone was impossible, then found she liked the logic. A broken machine with a clear cause feels kinder than people on a bad day."
},
{
"knowledge": 60,
"text": "Mina responds to gentleness faster than confidence. Slow kissing, patient hands, and praise that names something real can make her look up instead of away. Attention on her breasts embarrasses her because her body reacts before she can hide it."
},
{
"knowledge": 80,
"text": "Trust makes her curious. She asks quiet questions, then turns red because she already imagined the answer. She wants guidance without being rushed, touch without being handled like a project, and desire that lets her stay nervous without feeling foolish."
},
{
"knowledge": 100,
"text": "Mina gets bold in small, shocking pieces. A kiss she starts herself. Fingers curling into your shirt. A whispered request that makes her cover her face afterward. When she finally lets herself want, it is not practiced. It is nervous, hungry, and real."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(11)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 012">>
<<= setup.CC.view("girl") >><<set $photo013ready to 0>>
<<if $dialogue013ready is undefined>><<set $dialogue013ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g12",
"slot": 12,
"first": "Paige",
"last": "Sterling",
"name": "Paige Sterling",
"age": 28,
"avatar": "🧾",
"style": "soft accountant",
"difficulty": -3,
"bio": "Paige Sterling is an accountant with neat ledgers, soft cardigans, and a frightening memory for numbers that do not line up. She is polite until someone lies to her. Then the softness stays, but the excuses start dying quickly.",
"personality": [
"polite",
"watchful",
"quietly greedy"
],
"inclinations": [
"mutual oral",
"reciprocity kink",
"kissing warmth",
"proof over promises"
],
"socialLinks": [
{
"girlId": "g3",
"name": "Tessa Grant",
"relationship": "finance peer",
"how": "Paige and Tessa trade notes over coffee when one of them is stuck on a report."
},
{
"girlId": "g8",
"name": "Elena Park",
"relationship": "forecasting contact",
"how": "Paige gives Elena monthly accounts when a client wants a forecast instead of another backward-looking report."
},
{
"girlId": "g10",
"name": "Clara Voss",
"relationship": "invoice contact",
"how": "Paige straightens out Clara's invoices after a busy event week."
}
],
"details": {
"eyeColor": "brown",
"eyeShape": "wide eyes",
"hairColor": "blonde",
"hairStyle": "straight",
"hairLength": "long",
"hairTexture": "coarse",
"skinTone": "porcelain skin",
"skinDetail": "smooth complexion",
"height": "tall",
"bodyShape": "a curvy build",
"bustSize": "a full bust",
"buttSize": "wide hips and a fuller butt",
"waist": "a narrow waist",
"legs": "curvy legs",
"faceShape": "round face",
"lips": "a soft smile",
"eyebrows": "neat brows",
"voice": "a bright voice",
"makeup": "light makeup",
"scent": "clean soap",
"nails": "clean-polished nails",
"tattoos": "an ankle tattoo",
"piercings": "a nose stud",
"posture": "a relaxed posture",
"demeanor": "careful",
"top": "a button shirt",
"bottom": "a pair of leggings",
"outfitFit": "carefully matched",
"underwear": "soft cotton underwear",
"shoes": "a pair of heels",
"accessories": "earrings",
"perfumeStrength": "strong",
"movement": "controlled gestures",
"laugh": "a quiet laugh",
"hobby": "spotting bad numbers",
"occupation": "accountant"
},
"interests": {
"cooking": 38,
"sports": 20,
"informatic": 54,
"finance": 96,
"art": 24,
"photography": 12,
"music": 56
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 38
},
"positionPrefs": {
"kissing": 64,
"touching": 30,
"breast_sensitivity": 26,
"legs_sensitivity": 22,
"receiving_oral": 46,
"giving_oral": 44,
"swallowing": 74,
"sixty_nine": 88,
"missionary": 34,
"cowgirl": 20,
"reverse_cowgirl": 18,
"doggy": 24,
"wall": 12,
"vaginal_sensitivity": 42,
"anal_sensitivity": 14,
"ass_sensitivity": 20,
"breast_sex": 16,
"fingering": 34,
"handjob": 26,
"undressing": 38,
"exhibitionism": 30,
"massage": 38
},
"routine": {
"home": "loc4",
"work": "loc13",
"favorite": "loc6",
"weekend": "loc8",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 70,
"fallback": "near office clients"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 70,
"fallback": "near office clients"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 45,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc13",
"chance": 82,
"fallback": "on finance paperwork"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 45,
"fallback": "passing through the cheaper blocks"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Morning": {
"label": "Morning",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "taking a measured coffee break"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 013",
"bioStages": [
{
"knowledge": 20,
"text": "Paige likes books that balance because they tell the truth eventually. Receipts, dates, deposits, strange little gaps nobody else respects. Her work looks boring until a business exposes itself through one missing decimal."
},
{
"knowledge": 40,
"text": "She is cautious with people because she has seen how expensive a lazy promise can become. A bad signature, a favor that becomes debt, a smile used as paperwork. The quickest way to interest her is to admit what you do not know."
},
{
"knowledge": 60,
"text": "Paige is not as shy as she first looks. She likes fairness turning filthy: both mouths busy, both bodies losing composure, neither person hiding behind generosity. Sixty-nine hits her harder than she expected because it makes giving and taking happen at once."
},
{
"knowledge": 80,
"text": "The accountant mask slips when pleasure stops being countable. Paige tries to track your reactions, her breath, who is winning. Then the math fails, and the failure makes her blush hard enough to want more."
},
{
"knowledge": 100,
"text": "With trust, Paige becomes quietly greedy. She still smooths her cardigan afterward and checks her phone like nothing happened, but she asks for what she wants with new confidence. Equal pleasure, clear promises, no emotional debt left unpaid."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(12)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 013">>
<<= setup.CC.view("girl") >><<set $photo014ready to 0>>
<<if $dialogue014ready is undefined>><<set $dialogue014ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g13",
"slot": 13,
"first": "Bianca",
"last": "Rowe",
"name": "Bianca Rowe",
"age": 24,
"avatar": "💆",
"style": "massage therapist",
"difficulty": 5,
"bio": "Bianca Rowe is a massage therapist with calm hands, firm rules, and the unnerving ability to find the sore spot before someone admits it hurts. She is gentle, but not vague. Anyone who mistakes warmth for permission learns quickly.",
"personality": [
"grounded",
"firm",
"warm"
],
"inclinations": [
"massage intimacy",
"missionary closeness",
"touch with purpose",
"strict professional boundaries"
],
"socialLinks": [
{
"girlId": "g0",
"name": "Maya Bell",
"relationship": "massage client",
"how": "Maya booked Bianca after a run of long shifts. Bianca gets fed after the appointment if the cafe is still open."
},
{
"girlId": "g4",
"name": "Leah Cross",
"relationship": "referral partner",
"how": "Bianca sends clients who need posture work to Leah, and Leah sends sore clients back to Bianca."
},
{
"girlId": "g9",
"name": "Rita Fox",
"relationship": "recovery client",
"how": "Rita books Bianca after hard running weeks, mostly for her calves and shoulders."
},
{
"girlId": "g14",
"name": "Hana Sato",
"relationship": "musician client",
"how": "Hana sees Bianca when her hands and shoulders are sore from rehearsing."
}
],
"details": {
"eyeColor": "hazel",
"eyeShape": "almond eyes",
"hairColor": "auburn",
"hairStyle": "in curls",
"hairLength": "very long",
"hairTexture": "coarse",
"skinTone": "brown skin",
"skinDetail": "sun-kissed skin",
"height": "average height",
"bodyShape": "a toned build",
"bustSize": "a full bust",
"buttSize": "a small butt",
"waist": "a narrow waist",
"legs": "slim legs",
"faceShape": "a sharp jaw",
"lips": "full lips",
"eyebrows": "soft brows",
"voice": "a calm voice",
"makeup": "natural makeup",
"scent": "floral perfume",
"nails": "clean-polished nails",
"tattoos": "a hidden tattoo",
"piercings": "multiple earrings",
"posture": "an upright posture",
"demeanor": "calm",
"top": "a tank top",
"bottom": "a skirt",
"outfitFit": "carefully matched",
"underwear": "plain underwear",
"shoes": "a pair of boots",
"accessories": "a watch",
"perfumeStrength": "light",
"movement": "restless hands",
"laugh": "a dry laugh",
"hobby": "bodywork and cooking simple meals",
"occupation": "massage therapist"
},
"interests": {
"cooking": 52,
"sports": 60,
"informatic": 20,
"finance": 28,
"art": 44,
"photography": 30,
"music": 42
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 69
},
"positionPrefs": {
"kissing": 32,
"touching": 74,
"breast_sensitivity": 18,
"legs_sensitivity": 34,
"receiving_oral": 20,
"giving_oral": 38,
"swallowing": 95,
"sixty_nine": 20,
"missionary": 88,
"cowgirl": 26,
"reverse_cowgirl": 16,
"doggy": 18,
"wall": 10,
"vaginal_sensitivity": 64,
"anal_sensitivity": 30,
"ass_sensitivity": 22,
"breast_sex": 12,
"fingering": 36,
"handjob": 20,
"undressing": 24,
"exhibitionism": 7,
"massage": 94
},
"routine": {
"home": "loc4",
"work": "loc14",
"favorite": "loc6",
"weekend": "loc8",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Morning": {
"label": "Morning",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Morning": {
"label": "Morning",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Morning": {
"label": "Morning",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Midday": {
"label": "Midday",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 45,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Midday": {
"label": "Midday",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Morning": {
"label": "Morning",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 45,
"fallback": "passing through the cheaper blocks"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 82,
"fallback": "taking spa appointments"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 014",
"bioStages": [
{
"knowledge": 20,
"text": "Bianca remembers injuries, surgeries, bad backs, tight shoulders, and clients who claim they are fine while their bodies tell on them. She is not mystical about touch. She simply pays attention and does the work properly."
},
{
"knowledge": 40,
"text": "She keeps her private life away from her massage table because she has seen people confuse relief with romance. Professional kindness is still professional. If you want anything more from Bianca, you have to prove you understand where work ends."
},
{
"knowledge": 60,
"text": "When Bianca wants someone, she becomes more direct rather than coy. She likes a hand placed clearly, a kiss that does not fumble, and bodies face to face where nobody gets treated like equipment. Missionary appeals because the person stays in the act."
},
{
"knowledge": 80,
"text": "Massage is what she gives. Being touched back is the rare thing. If she lets your hands work over her slowly, she is not grading technique anymore. She is letting herself stop being the expert for once."
},
{
"knowledge": 100,
"text": "Bianca wants to be held in a way that does not require supervision. No audience, no rushed fumbling, no client smile. Just skin, breath, and someone steady enough to make her lose composure without making her regret it."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(13)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 014">>
<<= setup.CC.view("girl") >><<set $photo015ready to 0>>
<<if $dialogue015ready is undefined>><<set $dialogue015ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g14",
"slot": 14,
"first": "Hana",
"last": "Sato",
"name": "Hana Sato",
"age": 20,
"avatar": "🎹",
"style": "quiet musician",
"difficulty": -13,
"bio": "Hana Sato teaches music with a soft voice and terrifying standards. She corrects beginners kindly, practices until her fingers ache, and notices who is actually listening instead of waiting to talk.",
"personality": [
"soft-spoken",
"intense",
"meticulous"
],
"inclinations": [
"receiving oral",
"sensitive breasts",
"music lessons",
"needs quiet trust"
],
"socialLinks": [
{
"girlId": "g13",
"name": "Bianca Rowe",
"relationship": "musician client",
"how": "Hana sees Bianca when her hands and shoulders are sore from rehearsing."
},
{
"girlId": "g5",
"name": "Sofia Reed",
"relationship": "music-scene acquaintance",
"how": "Hana and Sofia keep ending up on the same small bills and share a late meal after shows."
},
{
"girlId": "g11",
"name": "Mina Hart",
"relationship": "student and performer contact",
"how": "Hana has helped with a small music group Mina runs through the library."
},
{
"girlId": "g6",
"name": "Valerie King",
"relationship": "recital contact",
"how": "Hana has played brief sets at two of Valerie's gallery openings."
}
],
"details": {
"eyeColor": "blue",
"eyeShape": "wide eyes",
"hairColor": "brown",
"hairStyle": "in curls",
"hairLength": "shoulder-length",
"hairTexture": "soft",
"skinTone": "tan skin",
"skinDetail": "sun-kissed skin",
"height": "short",
"bodyShape": "a toned build",
"bustSize": "a generous bust",
"buttSize": "a round butt",
"waist": "a narrow waist",
"legs": "slim legs",
"faceShape": "oval face",
"lips": "wide smile",
"eyebrows": "soft brows",
"voice": "a bright voice",
"makeup": "no makeup",
"scent": "citrus",
"nails": "dark-polished nails",
"tattoos": "a small wrist tattoo",
"piercings": "earrings",
"posture": "an upright posture",
"demeanor": "gentle",
"top": "a fitted tee",
"bottom": "a pair of leggings",
"outfitFit": "casual",
"underwear": "plain underwear",
"shoes": "a pair of sneakers",
"accessories": "earrings",
"perfumeStrength": "strong",
"movement": "quick steps",
"laugh": "a dry laugh",
"hobby": "arranging practice pieces",
"occupation": "music teacher"
},
"interests": {
"cooking": 42,
"sports": 18,
"informatic": 34,
"finance": 14,
"art": 56,
"photography": 30,
"music": 96
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 22
},
"positionPrefs": {
"kissing": 52,
"touching": 30,
"breast_sensitivity": 64,
"legs_sensitivity": 18,
"receiving_oral": 90,
"giving_oral": 18,
"swallowing": 25,
"sixty_nine": 22,
"missionary": 40,
"cowgirl": 12,
"reverse_cowgirl": 16,
"doggy": 18,
"wall": 14,
"vaginal_sensitivity": 46,
"anal_sensitivity": 20,
"ass_sensitivity": 16,
"breast_sex": 76,
"fingering": 42,
"handjob": 16,
"undressing": 34,
"exhibitionism": 12,
"massage": 38
},
"routine": {
"home": "loc4",
"work": "loc5",
"favorite": "loc11",
"weekend": "loc6",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 62,
"fallback": "checking rehearsal space"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 64,
"fallback": "meeting over coffee"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 64,
"fallback": "meeting over coffee"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 62,
"fallback": "checking rehearsal space"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 64,
"fallback": "meeting over coffee"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 62,
"fallback": "checking rehearsal space"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 64,
"fallback": "meeting over coffee"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 82,
"fallback": "teaching or practicing"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 62,
"fallback": "checking rehearsal space"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 64,
"fallback": "meeting over coffee"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 64,
"fallback": "meeting over coffee"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 64,
"fallback": "meeting over coffee"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 64,
"fallback": "meeting over coffee"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 64,
"fallback": "meeting over coffee"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 62,
"fallback": "checking rehearsal space"
},
"Evening": {
"label": "Evening",
"loc": "loc11",
"chance": 62,
"fallback": "checking rehearsal space"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 45,
"fallback": "following the music"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 45,
"fallback": "passing through the cheaper blocks"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 015",
"bioStages": [
{
"knowledge": 20,
"text": "Hana spends her days on scales, borrowed rooms, cheap keyboards, and parents who think talent should cost less. She is patient because teaching demands it, not because she lacks opinions. Lazy listening bothers her more than wrong notes."
},
{
"knowledge": 40,
"text": "Music gives Hana a way to be intense without becoming loud. She can spend twenty minutes on one phrase until it finally opens. That habit follows her everywhere. She would rather repeat something properly than pretend a clumsy first try was enough."
},
{
"knowledge": 60,
"text": "Her shyness hides a fierce appetite for being understood. She likes when someone notices small changes: how her shoulders drop, how her voice gets warmer, how a touch to her chest makes her lose the sentence she was trying to finish."
},
{
"knowledge": 80,
"text": "Receiving oral overwhelms Hana because it makes her stop managing herself. She tries to stay quiet, then fails in little broken sounds that embarrass her afterward. Breast play has the same effect: too visible, too responsive, too hard to turn into a lesson."
},
{
"knowledge": 100,
"text": "When Hana trusts you, the quiet does not vanish. It becomes intimate. She asks for things in a low voice, hides her face when pleasure gets too obvious, then reaches for you again because hiding did not make the wanting smaller."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(14)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 015">>
<<= setup.CC.view("girl") >><<set $photo016ready to 0>>
<<if $dialogue016ready is undefined>><<set $dialogue016ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g15",
"slot": 15,
"first": "Keira",
"last": "Lane",
"name": "Keira Lane",
"age": 24,
"avatar": "📷",
"style": "watchful photographer",
"difficulty": -2,
"bio": "Keira Lane photographs people who think they are hiding. She catches fake confidence, lonely clothes, and the split second before a smile becomes work. Her camera lets her stare first. Getting her to step out from behind it is the hard part.",
"personality": [
"dry",
"observant",
"guarded"
],
"inclinations": [
"likes being looked at when she chooses it",
"receiving oral fixation",
"camera confidence",
"does not trust flattery"
],
"socialLinks": [
{
"girlId": "g0",
"name": "Maya Bell",
"relationship": "small-business client",
"how": "Keira photographed Maya's cafe menu and the shop before it reopened one spring."
},
{
"girlId": "g2",
"name": "Iris Moon",
"relationship": "photography collaborator",
"how": "Keira photographs Iris's murals before weather and tags ruin them."
},
{
"girlId": "g19",
"name": "Amara West",
"relationship": "street-route contact",
"how": "Amara points Keira toward streets that make useful backdrops without getting her in anyone's way."
},
{
"girlId": "g6",
"name": "Valerie King",
"relationship": "gallery collaborator",
"how": "Keira photographs small gallery openings for Valerie when the usual photographer is booked."
},
{
"girlId": "g18",
"name": "Selene Black",
"relationship": "nightlife photography contact",
"how": "Selene tells Keira which nights are too dark or too crowded to bother shooting."
}
],
"details": {
"eyeColor": "gray",
"eyeShape": "wide eyes",
"hairColor": "black",
"hairStyle": "in a sleek ponytail",
"hairLength": "short",
"hairTexture": "curly",
"skinTone": "deep brown skin",
"skinDetail": "smooth complexion",
"height": "tall",
"bodyShape": "a slim build",
"bustSize": "a modest bust",
"buttSize": "a firm butt",
"waist": "a soft waist",
"legs": "curvy legs",
"faceShape": "oval face",
"lips": "a soft smile",
"eyebrows": "neat brows",
"voice": "a husky voice",
"makeup": "no makeup",
"scent": "floral perfume",
"nails": "painted nails",
"tattoos": "an ankle tattoo",
"piercings": "a nose stud",
"posture": "an upright posture",
"demeanor": "watchful",
"top": "a loose sweater",
"bottom": "a pair of leggings",
"outfitFit": "stylish",
"underwear": "a lace underwear set",
"shoes": "a pair of boots",
"accessories": "earrings",
"perfumeStrength": "barely there",
"movement": "controlled gestures",
"laugh": "a quiet laugh",
"hobby": "night photography",
"occupation": "photographer and shoot assistant"
},
"interests": {
"cooking": 20,
"sports": 24,
"informatic": 34,
"finance": 18,
"art": 84,
"photography": 96,
"music": 40
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 61
},
"positionPrefs": {
"kissing": 31,
"touching": 24,
"breast_sensitivity": 24,
"legs_sensitivity": 34,
"receiving_oral": 86,
"giving_oral": 12,
"swallowing": 82,
"sixty_nine": 22,
"missionary": 26,
"cowgirl": 22,
"reverse_cowgirl": 36,
"doggy": 18,
"wall": 40,
"vaginal_sensitivity": 34,
"anal_sensitivity": 20,
"ass_sensitivity": 30,
"breast_sex": 14,
"fingering": 48,
"handjob": 15,
"undressing": 42,
"exhibitionism": 76,
"massage": 18
},
"routine": {
"home": "loc4",
"work": "loc11",
"favorite": "loc8",
"weekend": "loc7",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 62,
"fallback": "looking for light and faces"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Evening": {
"label": "Evening",
"loc": "loc8",
"chance": 62,
"fallback": "looking for light and faces"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc8",
"chance": 62,
"fallback": "looking for light and faces"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Evening": {
"label": "Evening",
"loc": "loc8",
"chance": 62,
"fallback": "looking for light and faces"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 62,
"fallback": "looking for light and faces"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc8",
"chance": 62,
"fallback": "looking for light and faces"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Midday": {
"label": "Midday",
"loc": "loc8",
"chance": 62,
"fallback": "looking for light and faces"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "watching the night crowd"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 45,
"fallback": "passing through the cheaper blocks"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 62,
"fallback": "looking for light and faces"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 82,
"fallback": "shooting studio work"
},
"Evening": {
"label": "Evening",
"loc": "loc8",
"chance": 62,
"fallback": "looking for light and faces"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 38,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 016",
"bioStages": [
{
"knowledge": 20,
"text": "Keira works small shoots that look rich only after the edits. She hauls lights, pins fabric, fixes bad poses, and catches the one frame where a nervous model forgets to act expensive. She respects faces more than outfits."
},
{
"knowledge": 40,
"text": "She manages her own image like a locked cabinet. She knows the jacket that makes her look untouchable and the window light that softens her face. If a conversation gets too personal, she reaches for the camera and lets the lens answer."
},
{
"knowledge": 60,
"text": "Keira is not shy about desire. She is shy about being caught wanting. Compliment the work and she listens. Compliment only her body and she files you with the clients who think a pretty shot takes no skill."
},
{
"knowledge": 80,
"text": "Being watched excites her when she has chosen the frame. She likes the wickedness of standing in the light on purpose, knowing exactly what you can see. Receiving oral fits her because it forces her to stop directing the shot and let her body ruin the composition."
},
{
"knowledge": 100,
"text": "If Keira trusts you, the camera becomes a game instead of a shield. A door left open, a shirt lifted with a smirk, a picture deleted because the real memory is better. She still wants control over what the world sees. With you, she wants the private version to be much dirtier."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(15)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 016">>
<<= setup.CC.view("girl") >><<set $photo017ready to 0>>
<<if $dialogue017ready is undefined>><<set $dialogue017ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g16",
"slot": 16,
"first": "Diana",
"last": "Rook",
"name": "Diana Rook",
"age": 25,
"avatar": "🎮",
"style": "streamer tech",
"difficulty": -7,
"bio": "Diana Rook streams games with fast hands, sharp jokes, and a version of herself built for people who confuse attention with friendship. She is funny, defensive, and smarter than her chat deserves most nights.",
"personality": [
"funny",
"defensive",
"quick"
],
"inclinations": [
"fingering focus",
"camera thrill",
"tech competence",
"sarcasm as armor"
],
"socialLinks": [
{
"girlId": "g1",
"name": "Zoe Bellamy",
"relationship": "streaming contact",
"how": "Diana asks Zoe for a second opinion before buying streaming gear she cannot return."
},
{
"girlId": "g8",
"name": "Elena Park",
"relationship": "stream analytics contact",
"how": "Diana brings Elena stream data when chat insists a format was a hit and the viewer numbers disagree."
},
{
"girlId": "g5",
"name": "Sofia Reed",
"relationship": "streaming contact",
"how": "Diana streamed one of Sofia's local sets and still has the recording saved."
},
{
"girlId": "g18",
"name": "Selene Black",
"relationship": "nightlife tech contact",
"how": "Selene calls Diana when the club setup decides to fail five minutes before people arrive."
}
],
"details": {
"eyeColor": "dark brown",
"eyeShape": "wide eyes",
"hairColor": "dark red",
"hairStyle": "in curls",
"hairLength": "short",
"hairTexture": "curly",
"skinTone": "fair skin",
"skinDetail": "clear skin",
"height": "average height",
"bodyShape": "a soft build",
"bustSize": "a small bust",
"buttSize": "a round butt",
"waist": "a narrow waist",
"legs": "toned legs",
"faceShape": "a sharp jaw",
"lips": "a soft smile",
"eyebrows": "dark brows",
"voice": "a husky voice",
"makeup": "light makeup",
"scent": "floral perfume",
"nails": "painted nails",
"tattoos": "a hidden tattoo",
"piercings": "a nose stud",
"posture": "a relaxed posture",
"demeanor": "sharp",
"top": "a fitted jacket",
"bottom": "a skirt",
"outfitFit": "stylish",
"underwear": "soft cotton underwear",
"shoes": "a pair of flats",
"accessories": "no accessories",
"perfumeStrength": "light",
"movement": "controlled gestures",
"laugh": "a nervous laugh",
"hobby": "modding stream layouts",
"occupation": "streamer and tech fixer"
},
"interests": {
"cooking": 16,
"sports": 30,
"informatic": 92,
"finance": 26,
"art": 50,
"photography": 48,
"music": 54
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 56
},
"positionPrefs": {
"kissing": 24,
"touching": 36,
"breast_sensitivity": 20,
"legs_sensitivity": 46,
"receiving_oral": 62,
"giving_oral": 16,
"swallowing": 57,
"sixty_nine": 28,
"missionary": 22,
"cowgirl": 18,
"reverse_cowgirl": 18,
"doggy": 24,
"wall": 30,
"vaginal_sensitivity": 42,
"anal_sensitivity": 18,
"ass_sensitivity": 22,
"breast_sex": 16,
"fingering": 84,
"handjob": 36,
"undressing": 32,
"exhibitionism": 78,
"massage": 18
},
"routine": {
"home": "loc3",
"work": "loc3",
"favorite": "loc5",
"weekend": "loc7",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Evening": {
"label": "Evening",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Evening": {
"label": "Evening",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Morning": {
"label": "Morning",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Evening": {
"label": "Evening",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Morning": {
"label": "Morning",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Midday": {
"label": "Midday",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Evening": {
"label": "Evening",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 64,
"fallback": "out under the bass"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 62,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Evening": {
"label": "Evening",
"loc": "loc4",
"chance": 45,
"fallback": "visiting the quiet upper blocks"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 82,
"fallback": "streaming from home"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 017",
"bioStages": [
{
"knowledge": 20,
"text": "Diana learned computers because streaming punishes ignorance. Audio breaks, drivers fail, overlays vanish, and strangers complain like they own her evening. She troubleshoots fast because ending early feels like letting the crowd win."
},
{
"knowledge": 40,
"text": "The loud online persona protects a quieter person behind it. Sarcasm buys her time. A joke turns discomfort into content before anyone can see the bruise. She likes attention best when she can mute, ban, crop, or cut away."
},
{
"knowledge": 60,
"text": "Her hands are always moving: controller, keyboard, cable, screwdriver, mouse. Fingering hits the same focused part of her brain. She reacts hard to skill that does not ask for applause."
},
{
"knowledge": 80,
"text": "Diana is drawn to the risk of being seen, but only when she holds the off switch. A camera covered with tape, a stream ending two minutes early, a shirt pulled up after the room goes quiet. The danger works because she can still say stop."
},
{
"knowledge": 100,
"text": "When Diana trusts you, the jokes stay, but they stop being a shield. She lets you see the tired girl after the stream, the one with sore wrists and messy hair who still wants to be touched like she is worth watching when nobody else is online."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(16)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 017">>
<<= setup.CC.view("girl") >><<set $photo018ready to 0>>
<<if $dialogue018ready is undefined>><<set $dialogue018ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g17",
"slot": 17,
"first": "Olivia",
"last": "Stone",
"name": "Olivia Stone",
"age": 24,
"avatar": "🌺",
"style": "catering caretaker",
"difficulty": 7,
"bio": "Olivia Stone works catering with warm hands, tired feet, and the habit of feeding everyone before admitting she is hungry. She is nurturing without being naive. She knows exactly who says thank you and who leaves her to clean the mess.",
"personality": [
"nurturing",
"tired",
"quietly stubborn"
],
"inclinations": [
"mutual oral warmth",
"leg admiration",
"feeding as affection",
"hates being taken for granted"
],
"socialLinks": [
{
"girlId": "g0",
"name": "Maya Bell",
"relationship": "catering contact",
"how": "Olivia uses Maya's cafe for small event orders and asks what people actually finish when there is too much food."
},
{
"girlId": "g7",
"name": "Hazel Mercer",
"relationship": "kitchen acquaintance",
"how": "Olivia has shown Hazel a few cheap staff meals that survive a long shift."
},
{
"girlId": "g10",
"name": "Clara Voss",
"relationship": "catering contact",
"how": "Olivia handles food for some of Clara's smaller events and tells her when a menu is too ambitious."
},
{
"girlId": "g18",
"name": "Selene Black",
"relationship": "nightlife coworker",
"how": "Olivia and Selene have worked enough late events together to know when the other needs a break."
}
],
"details": {
"eyeColor": "green",
"eyeShape": "wide eyes",
"hairColor": "blonde",
"hairStyle": "in curls",
"hairLength": "shoulder-length",
"hairTexture": "silky",
"skinTone": "brown skin",
"skinDetail": "sun-kissed skin",
"height": "tall",
"bodyShape": "a slim build",
"bustSize": "a modest bust",
"buttSize": "wide hips and a fuller butt",
"waist": "a defined waist",
"legs": "toned legs",
"faceShape": "a heart-shaped face",
"lips": "full lips",
"eyebrows": "dark brows",
"voice": "a husky voice",
"makeup": "light makeup",
"scent": "floral perfume",
"nails": "dark-polished nails",
"tattoos": "an ankle tattoo",
"piercings": "earrings",
"posture": "a restless posture",
"demeanor": "nurturing",
"top": "a fitted jacket",
"bottom": "a pair of tailored pants",
"outfitFit": "carefully matched",
"underwear": "plain underwear",
"shoes": "a pair of boots",
"accessories": "a bracelet",
"perfumeStrength": "strong",
"movement": "restless hands",
"laugh": "a bright laugh",
"hobby": "baking for friends",
"occupation": "catering worker"
},
"interests": {
"cooking": 92,
"sports": 26,
"informatic": 20,
"finance": 32,
"art": 28,
"photography": 44,
"music": 54
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 32
},
"positionPrefs": {
"kissing": 44,
"touching": 38,
"breast_sensitivity": 32,
"legs_sensitivity": 72,
"receiving_oral": 38,
"giving_oral": 40,
"swallowing": 11,
"sixty_nine": 86,
"missionary": 34,
"cowgirl": 20,
"reverse_cowgirl": 34,
"doggy": 24,
"wall": 8,
"vaginal_sensitivity": 40,
"anal_sensitivity": 12,
"ass_sensitivity": 28,
"breast_sex": 16,
"fingering": 32,
"handjob": 20,
"undressing": 28,
"exhibitionism": 18,
"massage": 42
},
"routine": {
"home": "loc3",
"work": "loc6",
"favorite": "loc2",
"weekend": "loc8",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Evening": {
"label": "Evening",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc4",
"chance": 45,
"fallback": "visiting the quiet upper blocks"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Evening": {
"label": "Evening",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Evening": {
"label": "Evening",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 45,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 64,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc2",
"chance": 62,
"fallback": "running mall errands"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 82,
"fallback": "handling food orders"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 018",
"bioStages": [
{
"knowledge": 20,
"text": "Olivia knows trays, timing, guests who grab too much, and kitchens that turn brutal behind beautiful rooms. She keeps people fed because it matters, but she also notices who treats service like furniture."
},
{
"knowledge": 40,
"text": "Cooking is how Olivia measures care. Not fancy plating, not ego, just whether someone feels better after eating. She saves broken pastries, brings leftovers to friends, and remembers who hates cilantro. The sweet part hides how often she forgets herself."
},
{
"knowledge": 60,
"text": "She likes balance because she gives too much by habit. Sixty-nine appeals to the part of her that wants pleasure to come back across the table. She can be generous, but she does not want to disappear inside generosity."
},
{
"knowledge": 80,
"text": "Her legs are stronger than people notice until she has been standing through a twelve-hour event. Complimenting them means more than praising her patience. Patience is what people take from her. Her legs are what carry her out."
},
{
"knowledge": 100,
"text": "When Olivia trusts you, she lets herself be wanted without serving first. She still laughs softly, still checks if you are okay, but she stops using care as a hiding place. For once, the hunger on the table is hers too."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(17)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 018">>
<<= setup.CC.view("girl") >><<set $photo019ready to 0>>
<<if $dialogue019ready is undefined>><<set $dialogue019ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g18",
"slot": 18,
"first": "Selene",
"last": "Black",
"name": "Selene Black",
"age": 27,
"avatar": "🌙",
"style": "nightclub door",
"difficulty": 0,
"bio": "Selene Black works the nightclub door with dark eyeliner, calm eyes, and the patience of someone who has already seen three bad decisions before midnight. She is cool, observant, and much kinder to nervous people than to loud ones.",
"personality": [
"cool",
"watchful",
"deadpan"
],
"inclinations": [
"ass fixation",
"doggy sex",
"night photography",
"likes quiet confidence"
],
"socialLinks": [
{
"girlId": "g17",
"name": "Olivia Stone",
"relationship": "nightlife coworker",
"how": "Olivia and Selene have worked enough late events together to know when the other needs a break."
},
{
"girlId": "g15",
"name": "Keira Lane",
"relationship": "nightlife photography contact",
"how": "Selene tells Keira which nights are too dark or too crowded to bother shooting."
},
{
"girlId": "g16",
"name": "Diana Rook",
"relationship": "nightlife tech contact",
"how": "Selene calls Diana when the club setup decides to fail five minutes before people arrive."
},
{
"girlId": "g5",
"name": "Sofia Reed",
"relationship": "nightlife coworker",
"how": "Selene has worked the door on nights when Sofia was singing inside."
}
],
"details": {
"eyeColor": "gray",
"eyeShape": "soft eyes",
"hairColor": "black",
"hairStyle": "in braids",
"hairLength": "long",
"hairTexture": "silky",
"skinTone": "tan skin",
"skinDetail": "smooth complexion",
"height": "tall",
"bodyShape": "an athletic build",
"bustSize": "a modest bust",
"buttSize": "a small butt",
"waist": "a narrow waist",
"legs": "long legs",
"faceShape": "round face",
"lips": "full lips",
"eyebrows": "neat brows",
"voice": "a confident voice",
"makeup": "no makeup",
"scent": "citrus",
"nails": "dark-polished nails",
"tattoos": "a small wrist tattoo",
"piercings": "earrings",
"posture": "a restless posture",
"demeanor": "nocturnal",
"top": "a fitted jacket",
"bottom": "a pair of tailored pants",
"outfitFit": "stylish",
"underwear": "a matching underwear set",
"shoes": "a pair of heels",
"accessories": "a thin necklace",
"perfumeStrength": "barely there",
"movement": "restless hands",
"laugh": "a nervous laugh",
"hobby": "shooting neon streets",
"occupation": "nightclub door staff"
},
"interests": {
"cooking": 10,
"sports": 30,
"informatic": 46,
"finance": 36,
"art": 42,
"photography": 70,
"music": 88
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 79
},
"positionPrefs": {
"kissing": 26,
"touching": 22,
"breast_sensitivity": 18,
"legs_sensitivity": 30,
"receiving_oral": 46,
"giving_oral": 20,
"swallowing": 91,
"sixty_nine": 34,
"missionary": 40,
"cowgirl": 22,
"reverse_cowgirl": 20,
"doggy": 62,
"wall": 44,
"vaginal_sensitivity": 36,
"anal_sensitivity": 38,
"ass_sensitivity": 86,
"breast_sex": 14,
"fingering": 42,
"handjob": 24,
"undressing": 36,
"exhibitionism": 40,
"massage": 16
},
"routine": {
"home": "loc3",
"work": "loc7",
"favorite": "loc6",
"weekend": "loc7",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc12",
"chance": 45,
"fallback": "crossing the transit plaza"
},
"Morning": {
"label": "Morning",
"loc": "loc3",
"chance": 38,
"fallback": "sleeping after the club"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 38,
"fallback": "sleeping after the club"
},
"Morning": {
"label": "Morning",
"loc": "loc3",
"chance": 38,
"fallback": "sleeping after the club"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 45,
"fallback": "visiting the quiet upper blocks"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc9",
"chance": 45,
"fallback": "near the water"
},
"Morning": {
"label": "Morning",
"loc": "loc3",
"chance": 38,
"fallback": "sleeping after the club"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 45,
"fallback": "training or stretching"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc8",
"chance": 45,
"fallback": "walking through the park"
},
"Morning": {
"label": "Morning",
"loc": "loc3",
"chance": 38,
"fallback": "sleeping after the club"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 38,
"fallback": "sleeping after the club"
},
"Morning": {
"label": "Morning",
"loc": "loc3",
"chance": 38,
"fallback": "sleeping after the club"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 38,
"fallback": "sleeping after the club"
},
"Morning": {
"label": "Morning",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Midday": {
"label": "Midday",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Evening": {
"label": "Evening",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
},
"Night": {
"label": "Night",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc3",
"chance": 38,
"fallback": "sleeping after the club"
},
"Morning": {
"label": "Morning",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Midday": {
"label": "Midday",
"loc": "loc11",
"chance": 45,
"fallback": "checking rehearsal space"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Evening": {
"label": "Evening",
"loc": "loc6",
"chance": 62,
"fallback": "meeting over coffee"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 82,
"fallback": "hosting the club floor"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 38,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 019",
"bioStages": [
{
"knowledge": 20,
"text": "Selene knows nightlife from the unromantic side: fake IDs, bathroom tears, rich men who think rules are optional, and regulars who tip because they are lonely. She can read a line before security spots the problem."
},
{
"knowledge": 40,
"text": "Music matters to her because it changes what people admit with their bodies. Photography matters because morning lies about the night. She takes pictures of empty sidewalks, smeared lipstick on glasses, and neon in puddles."
},
{
"knowledge": 60,
"text": "She likes calm people because the club gives her enough noise. Stand steady, speak plainly, and do not make her babysit your ego. Selene notices the ones who can wait without performing boredom."
},
{
"knowledge": 80,
"text": "Her desire runs darker than her manners. She likes ass, doggy, and the feeling of giving someone a look over her shoulder that leaves no room for misunderstanding. She is not delicate about wanting, but she is selective about who gets to see it."
},
{
"knowledge": 100,
"text": "When Selene trusts you, the door-girl distance finally drops. She becomes dry, funny, and surprisingly tender after the club empties out. The city feels quieter beside her, and the filth she offers in private feels like a secret she chose, not a performance she owed."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(18)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 019">>
<<= setup.CC.view("girl") >><<set $photo020ready to 0>>
<<if $dialogue020ready is undefined>><<set $dialogue020ready to 0>><</if>>
/% GIRL_DATA
{
"id": "g19",
"slot": 19,
"first": "Amara",
"last": "West",
"name": "Amara West",
"age": 23,
"avatar": "🚲",
"style": "bike courier",
"difficulty": -6,
"bio": "Amara West rides deliveries through traffic like every red light insulted her family. She is athletic, impatient, independent, and more artistic than her courier bag suggests. If she sits still, she is probably deciding where to run next.",
"personality": [
"impatient",
"athletic",
"defiant"
],
"inclinations": [
"ass confidence",
"handjob grin",
"fast undressing",
"hates being pinned down emotionally"
],
"socialLinks": [
{
"girlId": "g4",
"name": "Leah Cross",
"relationship": "courier fitness contact",
"how": "Amara asked Leah for a conditioning plan that would help with long courier shifts."
},
{
"girlId": "g9",
"name": "Rita Fox",
"relationship": "running acquaintance",
"how": "Amara joins Rita for short beach runs when her courier route is quiet."
},
{
"girlId": "g2",
"name": "Iris Moon",
"relationship": "mural contact",
"how": "Amara told Iris about a legal wall after one of her older murals was painted over."
},
{
"girlId": "g15",
"name": "Keira Lane",
"relationship": "street-route contact",
"how": "Amara points Keira toward streets that make useful backdrops without getting her in anyone's way."
}
],
"details": {
"eyeColor": "green",
"eyeShape": "soft eyes",
"hairColor": "auburn",
"hairStyle": "straight",
"hairLength": "shoulder-length",
"hairTexture": "thick",
"skinTone": "deep brown skin",
"skinDetail": "beauty mark",
"height": "tall",
"bodyShape": "a toned build",
"bustSize": "a full bust",
"buttSize": "wide hips and a fuller butt",
"waist": "a defined waist",
"legs": "toned legs",
"faceShape": "round face",
"lips": "wide smile",
"eyebrows": "arched brows",
"voice": "a bright voice",
"makeup": "no makeup",
"scent": "vanilla",
"nails": "clean-polished nails",
"tattoos": "an ankle tattoo",
"piercings": "a nose stud",
"posture": "an athletic stance",
"demeanor": "energetic",
"top": "a fitted tee",
"bottom": "a pair of tailored pants",
"outfitFit": "carefully matched",
"underwear": "soft cotton underwear",
"shoes": "a pair of boots",
"accessories": "a thin necklace",
"perfumeStrength": "barely there",
"movement": "controlled gestures",
"laugh": "a bright laugh",
"hobby": "street stickers",
"occupation": "bike courier and sticker artist"
},
"interests": {
"cooking": 12,
"sports": 92,
"informatic": 32,
"finance": 24,
"art": 56,
"photography": 42,
"music": 34
},
"stats": {
"trust": 0,
"patience": 15,
"affection": 0,
"lust": 0,
"heat": 0,
"obedience": 0,
"knowledge": 0,
"assertiveness": 78
},
"positionPrefs": {
"kissing": 28,
"touching": 26,
"breast_sensitivity": 14,
"legs_sensitivity": 64,
"receiving_oral": 16,
"giving_oral": 16,
"swallowing": 40,
"sixty_nine": 18,
"missionary": 20,
"cowgirl": 28,
"reverse_cowgirl": 28,
"doggy": 40,
"wall": 30,
"vaginal_sensitivity": 36,
"anal_sensitivity": 20,
"ass_sensitivity": 92,
"breast_sex": 8,
"fingering": 18,
"handjob": 84,
"undressing": 66,
"exhibitionism": 46,
"massage": 10
},
"routine": {
"home": "loc3",
"work": "loc12",
"favorite": "loc1",
"weekend": "loc9",
"weekly": {
"Mon": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Midday": {
"label": "Midday",
"loc": "loc13",
"chance": 45,
"fallback": "dealing with money errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Tue": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Midday": {
"label": "Midday",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc4",
"chance": 45,
"fallback": "visiting the quiet upper blocks"
}
},
"Wed": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Midday": {
"label": "Midday",
"loc": "loc10",
"chance": 45,
"fallback": "handling office-side errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc11",
"chance": 45,
"fallback": "checking art and photos"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Thu": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Midday": {
"label": "Midday",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc5",
"chance": 45,
"fallback": "reading or studying"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc7",
"chance": 45,
"fallback": "out under the bass"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Fri": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Midday": {
"label": "Midday",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc12",
"chance": 82,
"fallback": "running courier routes"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sat": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 64,
"fallback": "near the waterline"
},
"Midday": {
"label": "Midday",
"loc": "loc9",
"chance": 64,
"fallback": "near the waterline"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc14",
"chance": 45,
"fallback": "unwinding at the spa"
},
"Evening": {
"label": "Evening",
"loc": "loc8",
"chance": 45,
"fallback": "keeping her legs moving"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
},
"Sun": {
"Dawn": {
"label": "Dawn",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Morning": {
"label": "Morning",
"loc": "loc9",
"chance": 64,
"fallback": "near the waterline"
},
"Midday": {
"label": "Midday",
"loc": "loc2",
"chance": 45,
"fallback": "running mall errands"
},
"Afternoon": {
"label": "Afternoon",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Evening": {
"label": "Evening",
"loc": "loc1",
"chance": 62,
"fallback": "training hard"
},
"Late Evening": {
"label": "Late Evening",
"loc": "loc6",
"chance": 45,
"fallback": "coffee and conversation"
},
"Night": {
"label": "Night",
"loc": "loc3",
"chance": 55,
"fallback": "at home between plans"
}
}
}
},
"flags": {},
"counters": {},
"pressure": {},
"notes": [],
"passage": "Girl 020",
"bioStages": [
{
"knowledge": 20,
"text": "Amara knows the city by shortcuts, cracked pavement, rude drivers, and buildings where security guards pretend couriers are invisible. She likes speed because it keeps people from asking questions she does not want to answer."
},
{
"knowledge": 40,
"text": "Her art lives in sketchbooks, sticker designs, and photos taken one-handed at stoplights. She refuses to call it serious because serious things attract expectations. Still, she notices color everywhere, especially on walls most people ignore."
},
{
"knowledge": 60,
"text": "Amara uses attitude as a helmet. It keeps the city from asking where she lives, what she wants, and why she hates owing anyone. Challenge her honestly and she sparks. Try to own her and she is gone before the sentence ends."
},
{
"knowledge": 80,
"text": "Her body confidence sits in her ass, thighs, and hands. Courier work made her strong, but being looked at still feels like a dare. She likes turning that dare back on someone: bending too low, stripping too fast, giving a handjob with a grin that says she knows exactly what she is doing."
},
{
"knowledge": 100,
"text": "When Amara trusts you, she does not become tame. She becomes honest about wanting someone who can keep pace. The sex is fast, physical, and a little reckless, but the real prize is afterward, when she stays beside you without pretending she only stopped to catch her breath."
}
]
}
END_GIRL_DATA %/
<<run setup.CC.init()>>
<<run setup.CC.openGirlSlot(19)>>
<<set $cc.view = "girl">>
<<set $cc.passageHint = "Girl 020">>
<<= setup.CC.view("girl") >><<run setup.CC.init()>>
<<set $cc.view = "girls">>
<<set $cc.passageHint = "Girls">>
<<= setup.CC.view("girls") >><<run setup.CC.init()>>
<<if $cc and $cc.gameStarted and $cc.mode neq "encounter" and $cc.location neq "home">>
<<run setup.CC.openLocation("home")>>
<</if>>
<<goto "Home">><<run setup.CC.init()>>
<<run setup.CC.openLocation("home")>>
<<set $cc.view = "home">>
<<set $cc.passageHint = "Home">>
<<= setup.CC.view("home") >><<run setup.CC.init()>>
<<set $cc.view = "home">>
<<set $cc.passageHint = "Home">>
<<set $photo007ready to 1>>
<<if $cc.openingPreviewSeen>>
<<goto "Home">>
<<else>>
<div class="cc-root home-intro-page">
<div class="card start-intro-card home-arrival-card">
<h1>A Studio Above the Gallery</h1>
<p>The listing tells you to meet the landlord at the back door of a small gallery shortly before closing.</p>
<p>A pale woman in a black corset and a long purple skirt opens it. She has long white hair in two braids, black lipstick, and a ring of keys in one hand.</p>
<p>"You must be here about the studio apartment." She offers you her free hand. "I'm Valerie. I run the gallery."</p>
<p>She locks the door behind you and leads you upstairs. Inside the apartment, she checks the window latches and turns on the bathroom light.</p>
<p>The studio apartment has a bed against one wall, a short kitchen, a bathroom with a door, and enough floor space to unpack without standing on your bag.</p>
<<= setup.CC.renderOpeningPreviewMedia("social_topbot") >>
<p>"The building belonged to my aunt," Valerie says. "I took over the gallery and the two studios above it. This one is free."</p>
<p>You count out $200. Valerie puts the bills in an envelope and writes the date on it.</p>
<p>"First week is paid. Rent is due Monday." She hands you a key. "My number is on the lease. Message me if the radiator stays cold."</p>
<div class="start-choice-grid">
[[Take the key and get some sleep|Opening Rental - Night]]
</div>
</div>
</div>
<</if>><<run setup.CC.init()>>
<<set $cc.view = "home">>
<<set $cc.passageHint = "Home">>
<div class="cc-root home-intro-page">
<div class="card start-intro-card home-arrival-card">
<p>You leave your bag by the wall, put your jacket over a chair, and lock the door. You mean to unpack, but lie down first. You are asleep within minutes.</p>
<p>A key turns in the lock sometime after midnight.</p>
<p>Valerie steps inside and shuts the door. Her hair is still in two braids, although a few white strands have slipped free around her face. You smell wine when she comes closer.</p>
<p>"I had two drinks after I closed the gallery," she says. "I should have gone home."</p>
<p>She looks a little embarrassed. "I thought you were cute when I showed you the apartment. I nearly told you, but then you handed me the rent and I lost my nerve."</p>
<p>She fiddles with the key ring. "Apparently two drinks were enough to make coming back seem sensible."</p>
<p>You step closer. Valerie catches your shirt, kisses you, and lets the keys fall onto the table.</p>
<p>Valerie backs toward the bed, then opens the clasps down the front of her black corset and slips it from her shoulders. Under it, she is still wearing a black bra and the long purple skirt.</p>
<<= setup.CC.renderOpeningPreviewMedia("social_brabot") >>
<p>She pulls you closer by your belt while you unfasten the skirt. The purple fabric drops around her ankles, leaving her in her bra and underwear.</p>
<p>You unfasten her bra, and she slips out of her underwear before climbing onto the bed. She pulls you down with her for another kiss.</p>
<<= setup.CC.renderOpeningPreviewMedia("social_naked") >>
<p>Her bare thigh presses between yours while she kisses you again.</p>
<div class="start-choice-grid">
[[Follow her onto the bed|Opening Rental - Blowjob]]
</div>
</div>
</div><<run setup.CC.init()>>
<<set $cc.view = "home">>
<<set $cc.passageHint = "Home">>
<div class="cc-root home-intro-page">
<div class="card start-intro-card home-arrival-card">
<p>Valerie pushes you onto the bed and kneels between your knees. Her fingers hook under your waistband before she looks up.</p>
<p>"Want me to suck your cock?"</p>
<p>You say yes.</p>
<p>She pulls your cock free, strokes it once, then runs her tongue over the head. After that, she takes it into her mouth.</p>
<<= setup.CC.renderOpeningPreviewMedia("blowjob") >>
<p>You hold one of her braids while she sucks you. When your hips lift, she presses one hand to your thigh, pushes you back down, and keeps going at a quicker pace.</p>
<p>The bedsprings creak when you shift. Valerie glances up at you, then takes you deeper.</p>
<div class="start-choice-grid">
[[Pull her up beside you|Opening Rental - Missionary]]
</div>
</div>
</div><<run setup.CC.init()>>
<<set $cc.view = "home">>
<<set $cc.passageHint = "Home">>
<div class="cc-root home-intro-page">
<div class="card start-intro-card home-arrival-card">
<p>You pull Valerie up and kiss her. She climbs over your hips, then rolls onto her back without breaking the kiss.</p>
<p>She spreads her legs and guides your cock to her pussy.</p>
<p>"Fuck me."</p>
<p>You push in slowly. She grabs your shoulders, lets out a breath, and moves her hips until you are all the way inside.</p>
<<= setup.CC.renderOpeningPreviewMedia("missionary") >>
<p>You fuck her at a steady pace. Valerie hooks one leg around your waist, pulls you closer, and kisses you whenever you lean down.</p>
<div class="start-choice-grid">
[[Turn her over|Opening Rental - Doggy Anal]]
</div>
</div>
</div><<run setup.CC.init()>>
<<set $cc.view = "home">>
<<set $cc.passageHint = "Home">>
<div class="cc-root home-intro-page">
<div class="card start-intro-card home-arrival-card">
<p>Valerie turns over and drags a pillow under her hips.</p>
<p>"Use your fingers first," she says, looking back at you. "Then fuck me."</p>
<p>You rub her clit and slide one finger into her ass. She braces herself on her elbows. When she pushes back into your hand, you add a second.</p>
<p>"Now," she says.</p>
<p>You line up at her ass and push in slowly. She grips the sheet and pushes back once you are inside.</p>
<<= setup.CC.renderOpeningPreviewMedia("anal_doggy") >>
<p>You hold her hips and fuck her from behind. Her nails catch the sheet, and she tells you not to stop.</p>
<div class="start-choice-grid">
[[Pull out before you come|Opening Rental - Cum on Face]]
</div>
</div>
</div><<run setup.CC.init()>>
<<set $cc.view = "home">>
<<set $cc.passageHint = "Home">>
<div class="cc-root home-intro-page">
<div class="card start-intro-card home-arrival-card">
<p>You pull out and Valerie rolls onto her back. She takes your cock in one hand, moves both braids behind her shoulders, and looks up at you.</p>
<p>"On my face."</p>
<p>She strokes you while you stand over her. Her other hand rests against her chest.</p>
<<= setup.CC.renderOpeningPreviewMedia("cum_on_face") >>
<p>When you start to come, Valerie holds still and keeps looking at you. You come across her cheeks and lips.</p>
<p>She closes her eyes, then wipes at her mouth with her thumb.</p>
<div class="start-choice-grid">
[[...|Opening Rental - Wake]]
</div>
</div>
</div><<run setup.CC.init()>>
<<run setup.CC.completeOpeningRentalPreview()>>
<<set $cc.view = "home">>
<<set $cc.passageHint = "Home">>
<div class="cc-root home-intro-page">
<div class="card start-intro-card home-arrival-card">
<p>You wake with one hand closed on the sheet and reach across the bed before you are fully awake.</p>
<p>There is nobody beside you. Your bag is still by the wall, your jacket is still on the chair, and the studio is dark.</p>
<p>It was just a dream.</p>
<p>The key Valerie gave you is on the counter beside the lease and the receipt for the first week.</p>
<p>You count the cash in your wallet. $200 left. That has to cover food and everything else until you find work.</p>
<p>Your bag can wait. You shower, get dressed, and head out to see what is nearby.</p>
<div class="start-choice-grid">
[[Start your first day|Home]]
</div>
</div>
</div>/% JOBS
[
{
"id": "odd_jobs_runner",
"label": "Transit errand runner",
"category": "Basic",
"minutes": 60,
"energy": 15,
"basePay": 14,
"payScale": 0.55,
"requires": {
"hustle": 2,
"fitness": 1
},
"min": {},
"gains": {
"hustle": 0.1,
"fitness": 0.05
},
"text": [
"You spend an hour moving through Transit Plaza with small parcels, pickup notes, and cheap cash jobs that reward speed more than pride."
],
"location": "loc12",
"availability": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc12",
"source": "Transit gig board",
"button": "Check the courier board",
"min": {},
"passText": "",
"failText": "The board is open, but nothing stops you from taking a basic runner lead.",
"girlIds": [
"g19"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Transit Plaza has short errand work.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"localSuccessLines": [
"You check the courier board near the Transit Plaza lockers and ignore the posts that look shady or overpaid.",
"The clean listings are simple errands: envelopes, small parcels, pickup slips, and short runs across town.",
"You copy the board location, the usual posting times, and a few notes about which routes are worth taking."
],
"npcSuccessLines": [
"Amara points at the station lockers instead of making it sound noble.",
"\"Small parcels, envelopes, pickup slips. You take the clean ones, move fast, and do not argue with the board.\"",
"\"If a job looks sketchy, leave it. If the pay looks stupidly high, leave it faster.\"",
"She marks the courier board on your map and circles the posts that usually stay simple."
]
}
},
{
"id": "dishwasher_shift",
"label": "Cafe dish pit shift",
"category": "Basic",
"minutes": 120,
"energy": 27,
"basePay": 32,
"payScale": 0.55,
"requires": {
"hustle": 2,
"willpower": 1
},
"min": {},
"gains": {
"hustle": 0.12,
"willpower": 0.07
},
"text": [
"You take the dish pit during a cafe rush, scrape plates, stack racks, and keep your hands moving while the kitchen shouts around you."
],
"location": "loc6",
"availability": [
"Morning",
"Midday",
"Afternoon",
"Evening",
"Late Evening"
],
"unlock": {
"location": "loc6",
"source": "Cafe Row kitchen door",
"button": "Ask the kitchen about dish shifts",
"min": {},
"passText": "",
"failText": "The kitchen needs someone who can take a long, ugly shift without whining. Build Hustle and Willpower first.",
"girlIds": [
"g0",
"g7"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Cafe Row has kitchen work.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"localSuccessLines": [
"You stop by the kitchen door on Cafe Row and catch the staff in the short quiet gap between rushes.",
"The shift is scrape plates, load racks, haul bins, mop spills, and keep the dish pit from burying the cooks.",
"It is hot, wet, loud work, but nobody expects charm. They expect your hands to keep moving."
],
"npcSuccessLines": [
"She points you to a dish pit shift that hires through the Cafe Row kitchen door.",
"Expect scraping plates, loading racks, hauling bins, mopping spills, and keeping clean pans moving before the cooks start yelling.",
"The work is ugly but simple: show up on time, keep your hands moving, and do not make the rush worse.",
"She gives you the kitchen door hours and tells you to wear shoes you can ruin."
]
},
"relationshipGains": [
{
"girlId": "g0",
"trust": 0.24,
"affection": 0.22
}
]
},
{
"id": "stockroom_help",
"label": "Mall stockroom shift",
"category": "Basic",
"minutes": 90,
"energy": 24,
"basePay": 22,
"payScale": 0.55,
"requires": {
"fitness": 2,
"hustle": 1,
"focus": 1
},
"min": {},
"gains": {
"fitness": 0.1,
"hustle": 0.08,
"focus": 0.05
},
"text": [
"You work behind the mall floor, unload boxes, count stock, and learn how to move fast without making the shelves worse."
],
"location": "loc2",
"availability": [
"Morning",
"Midday",
"Afternoon"
],
"unlock": {
"location": "loc2",
"source": "Mall hiring desk",
"button": "Ask the mall hiring desk",
"min": {
"fitness": 10,
"focus": 8
},
"passText": "",
"failText": "They need someone who can lift, count, and not slow everyone down.",
"girlIds": [],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Mall hiring desk",
"localSuccessLines": [
"The mall hiring desk points you away from the sales floor and toward the back corridors.",
"The work is unloading boxes, checking counts, moving carts, and getting merchandise out before the store runs short.",
"You leave with a stockroom contact and the warning that a bad count becomes someone else's problem later."
]
}
},
{
"id": "flyer_handout",
"label": "Transit flyer handout",
"category": "Basic",
"minutes": 75,
"energy": 18,
"basePay": 16,
"payScale": 0.5,
"requires": {
"charm": 1,
"hustle": 1
},
"min": {},
"gains": {
"charm": 0.08,
"hustle": 0.07
},
"text": [
"You stand in commuter traffic, catch eyes before they slide away, and hand out enough flyers to make the promoter stop checking on you."
],
"location": "loc12",
"availability": [
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc12",
"source": "Transit kiosk promoter",
"button": "Check the promo board",
"min": {},
"passText": "",
"failText": "This promo work is simple enough to take immediately.",
"girlIds": [],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Transit kiosk promoter",
"localSuccessLines": [
"A promoter at the transit kiosk hands you a thick stack of flyers and points at the commuter flow.",
"The job is standing where people can see you, offering the flyer before they look away, and staying polite after being ignored.",
"You take the posting details and learn which entrances get enough foot traffic to make the hour worth it."
]
}
},
{
"id": "cleaning_contract",
"label": "After-hours cleaning contract",
"category": "Basic",
"minutes": 150,
"energy": 36,
"basePay": 34,
"payScale": 0.5,
"requires": {
"fitness": 1,
"hustle": 2,
"willpower": 1
},
"min": {},
"gains": {
"hustle": 0.12,
"fitness": 0.08,
"willpower": 0.05
},
"text": [
"You clean after hours when the building is mostly empty, hauling trash, wiping desks, and leaving each room ready for people who will never notice."
],
"location": "loc3",
"availability": [
"Evening",
"Late Evening"
],
"unlock": {
"location": "loc3",
"source": "Residential notice board",
"button": "Read the cleaning notices",
"min": {
"hustle": 10,
"willpower": 8
},
"passText": "",
"failText": "The contract is long and dull. Build Hustle and Willpower before anyone hands you keys.",
"girlIds": [],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Residential notice board",
"localSuccessLines": [
"You read the cleaning notices on the residential board and copy the one that looks steady.",
"The work is after-hours cleanup: trash bags, wiped surfaces, vacuuming, bathroom checks, and leaving the place ready for morning.",
"No one watches the whole time, which means no one fixes skipped corners for you."
]
}
},
{
"id": "cafe_counter",
"label": "Cafe counter shift",
"category": "Service",
"minutes": 120,
"energy": 30,
"basePay": 30,
"payScale": 0.72,
"requires": {
"hustle": 2,
"empathy": 1,
"charm": 1
},
"min": {
"charm": 16,
"hustle": 16,
"empathy": 16
},
"gains": {
"hustle": 0.15,
"charm": 0.1,
"empathy": 0.09
},
"text": [
"You work a real counter rush: names, cups, impatient faces, spilled sugar, and the constant need to smile without slowing down."
],
"location": "loc6",
"availability": [
"Dawn",
"Morning",
"Midday",
"Afternoon"
],
"unlock": {
"location": "loc6",
"source": "Cafe Row counter staff",
"button": "Ask Maya about counter work",
"min": {
"charm": 16,
"hustle": 16,
"empathy": 16
},
"passText": "",
"failText": "Maya glances at the queue and says you need more practice before she can put you on the counter. Build Charm, Hustle, and Empathy.",
"girlIds": [
"g0"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Maya or Cafe Row can point you at counter shifts.",
"personOnly": true,
"prereqJobs": [
"dishwasher_shift"
],
"inquiryPassText": "",
"inquiryFailText": "She says you need more practice first.",
"npcSuccessLines": [
"Maya taps her pen against the rota, then checks the line forming outside.",
"\"You'll take orders, call names, and fix the small mistakes before they slow down the line.\"",
"\"The coffee is the easy part. Staying calm when everyone is late takes practice.\"",
"She tears off a schedule slip and circles two quieter shifts for you."
]
}
},
{
"id": "retail_floor",
"label": "Retail floor shift",
"category": "Service",
"minutes": 120,
"energy": 27,
"basePay": 28,
"payScale": 0.68,
"requires": {
"charm": 2,
"empathy": 1,
"focus": 1
},
"min": {
"charm": 16,
"empathy": 16,
"focus": 16
},
"gains": {
"charm": 0.15,
"empathy": 0.1,
"focus": 0.07
},
"text": [
"You handle the floor through slow browsers and sudden rushes, keeping displays straight while customers test your patience from every direction."
],
"location": "loc2",
"availability": [
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc2",
"source": "Mall hiring desk",
"button": "Ask about retail floor work",
"min": {
"charm": 16,
"empathy": 16,
"focus": 16
},
"passText": "",
"failText": "They want someone pleasant, alert, and hard to rattle.",
"girlIds": [],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Mall hiring desk",
"localSuccessLines": [
"The mall hiring desk offers floor work after checking that you can deal with customers.",
"You would straighten displays, answer basic questions, watch for messes, and keep browsing customers from turning the store into a laundry pile.",
"It is retail, so half the work is staying polite while someone insists the sign says something it does not."
]
}
},
{
"id": "event_host",
"label": "Event host assistant",
"category": "Service",
"minutes": 150,
"energy": 33,
"basePay": 40,
"payScale": 0.75,
"requires": {
"charm": 2,
"willpower": 1,
"focus": 1,
"empathy": 1
},
"min": {
"charm": 16,
"focus": 16,
"willpower": 16,
"empathy": 16
},
"gains": {
"charm": 0.16,
"willpower": 0.1,
"empathy": 0.09
},
"text": [
"You help run a noisy guest list, point people where they belong, and solve small problems before the promoter has to see them."
],
"location": "loc7",
"availability": [
"Evening",
"Late Evening",
"Night"
],
"unlock": {
"location": "loc7",
"source": "Nightclub event promoter",
"button": "Talk to the event promoter",
"min": {
"charm": 20,
"focus": 18,
"willpower": 18
},
"passText": "",
"failText": "The promoter needs someone sharper and steadier for guest problems. Build Charm, Focus, and Willpower.",
"girlIds": [
"g10"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Nightclub promoters need event help.",
"personOnly": true,
"prereqJobs": [
"barback_shift"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Clara sells the job with a grin, then gets practical fast.",
"\"Names at the door, guests pointed the right way, little problems caught before they turn loud.\"",
"\"You smile because it keeps things easy. You pay attention because smiling does not stop idiots.\"",
"She gives you the promoter name and a note about which entrance always gets backed up."
]
}
},
{
"id": "barback_shift",
"label": "Nightclub barback shift",
"category": "Service",
"minutes": 180,
"energy": 42,
"basePay": 52,
"payScale": 0.78,
"requires": {
"hustle": 2,
"fitness": 1,
"charm": 1,
"willpower": 1
},
"min": {
"hustle": 16,
"fitness": 16,
"charm": 16,
"willpower": 16
},
"gains": {
"hustle": 0.18,
"fitness": 0.11,
"willpower": 0.08
},
"text": [
"You haul ice, restock bottles, clear glass, and keep the bar alive while music and drunk orders hammer at your head."
],
"location": "loc7",
"availability": [
"Evening",
"Late Evening",
"Night"
],
"unlock": {
"location": "loc7",
"source": "Nightclub bar manager",
"button": "Ask the bar manager for work",
"min": {
"hustle": 18,
"fitness": 16,
"willpower": 16
},
"passText": "",
"failText": "The barback shift is heavy and loud. Build Hustle, Fitness, and Willpower first.",
"girlIds": [
"g18"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "The Nightclub needs barbacks at night.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Selene lists the job like she is checking stock.",
"\"Ice, bottles, glassware, trash, spills. If the bar runs out, the bartender hears about it first, but the barback caused it.\"",
"\"Stay moving, stay behind the counter, and do not flirt while someone is waiting on clean glasses.\"",
"She writes the manager's number on a napkin and tells you the first hour is only the warmup."
]
}
},
{
"id": "reception_cover",
"label": "Reception cover",
"category": "Service",
"minutes": 120,
"energy": 21,
"basePay": 32,
"payScale": 0.7,
"requires": {
"charm": 1,
"focus": 2,
"empathy": 1
},
"min": {
"focus": 26,
"charm": 21,
"empathy": 21
},
"gains": {
"focus": 0.15,
"charm": 0.08,
"empathy": 0.08
},
"text": [
"You cover a front desk, answer phones, redirect visitors, and keep a clean face while office problems pile up in quiet ways."
],
"location": "loc10",
"availability": [
"Morning",
"Midday",
"Afternoon"
],
"unlock": {
"location": "loc10",
"source": "Office temp desk",
"button": "Ask the temp desk about reception cover",
"min": {
"focus": 26,
"charm": 21,
"empathy": 21
},
"passText": "",
"failText": "They need someone more focused and socially steady. Build Focus, Charm, and Empathy.",
"girlIds": [
"g3"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Office District temp desks offer reception cover.",
"personOnly": true,
"npcSuccessLines": [
"Tessa explains the desk like it is a small machine that jams when people get clever.",
"\"Calls, sign-ins, visitors, messages. You keep the front calm while the rest of the office pretends it is not on fire.\"",
"\"Do not invent policy. If you do not know, find the person who does and write down the answer.\"",
"She forwards the temp desk contact and adds one warning: boring work still leaves evidence when you mess it up."
]
}
},
{
"id": "freelance_coding",
"label": "Small bug-fix contract",
"category": "Skilled",
"minutes": 150,
"energy": 27,
"basePay": 67,
"payScale": 0.95,
"requires": {
"informatic": 3,
"focus": 2,
"intelligence": 1
},
"min": {
"informatic": 40,
"focus": 35,
"intelligence": 35
},
"gains": {
"informatic": 0.24,
"focus": 0.1,
"intelligence": 0.08
},
"text": [
"You take a small bug-fix contract and spend the block reading messy code, finding the break, and sending back something that actually runs."
],
"location": "loc10",
"availability": [
"Afternoon",
"Evening",
"Late Evening"
],
"unlock": {
"location": "loc10",
"source": "Freelance tech board",
"button": "Check the freelance tech board",
"min": {
"informatic": 40,
"focus": 35,
"intelligence": 35
},
"passText": "",
"failText": "The tasks are not beginner work. Build Informatic, Focus, and Intelligence.",
"girlIds": [
"g1",
"g8"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Office District and Zoe can point you at coding work.",
"personOnly": true,
"prereqJobs": [
"coding_course"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She sends you a freelance tech board lead with small bug-fix tickets instead of crisis work.",
"The jobs are broken forms, dead buttons, tiny pages, and client notes written by people who only know that something stopped working.",
"Reproduce the bug, change as little as possible, test it, and write the fix in words a normal person can understand.",
"She marks two starter tickets and warns you not to touch anything labeled urgent yet."
]
}
},
{
"id": "bookkeeping_help",
"label": "Bookkeeping overflow",
"category": "Skilled",
"minutes": 120,
"energy": 24,
"basePay": 59,
"payScale": 0.92,
"requires": {
"finance": 3,
"focus": 2,
"intelligence": 1
},
"min": {
"finance": 40,
"focus": 35,
"intelligence": 35
},
"gains": {
"finance": 0.24,
"focus": 0.1
},
"text": [
"You clean up someone else's numbers, match receipts to lines, and find the small mistakes that make the whole sheet look wrong."
],
"location": "loc13",
"availability": [
"Morning",
"Midday",
"Afternoon"
],
"unlock": {
"location": "loc13",
"source": "Small accounting office",
"button": "Ask about bookkeeping overflow",
"min": {
"finance": 40,
"focus": 35,
"intelligence": 35
},
"passText": "",
"failText": "They are not letting you near accounts yet. Build Finance, Focus, and Intelligence.",
"girlIds": [
"g3",
"g12"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Financial District has bookkeeping overflow.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She gives you a bookkeeping overflow lead from a small accounting office that needs clean hands more than genius.",
"The work is receipts that do not match, totals that drift, and clients who swear the missing line was there yesterday.",
"You need clean notes, steady focus, and the nerve to question a number that looks too convenient.",
"She gives you the office contact and warns you that bad math gets expensive before anyone admits it is bad."
]
}
},
{
"id": "meal_prep_client",
"label": "Meal prep client list",
"category": "Skilled",
"minutes": 150,
"energy": 33,
"basePay": 46,
"payScale": 0.85,
"requires": {
"cooking": 3,
"hustle": 1,
"focus": 1
},
"min": {
"cooking": 38,
"hustle": 33,
"focus": 33
},
"gains": {
"cooking": 0.24,
"focus": 0.08,
"hustle": 0.07
},
"text": [
"You prep food for a client who wants clean containers, simple portions, and no excuses when the pickup time arrives."
],
"location": "loc6",
"availability": [
"Dawn",
"Morning",
"Midday"
],
"unlock": {
"location": "loc6",
"source": "Cafe Row meal-prep board",
"button": "Read the meal-prep requests",
"min": {
"cooking": 38,
"hustle": 33,
"focus": 33
},
"passText": "",
"failText": "The requests expect reliability, not experiments. Build Cooking, Hustle, and Focus.",
"girlIds": [
"g0",
"g17"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Cafe Row has meal prep clients.",
"personOnly": true,
"prereqJobs": [
"recipe_test_notes"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She gives you a meal-prep client lead from the Cafe Row board.",
"The clients want labeled containers, steady portions, pickup times that do not drift, and food that still tastes good after a night in the fridge.",
"If you change a recipe, write it down. If you burn something, remake it before anyone has to complain.",
"She copies the client list and marks the safest first request."
]
}
},
{
"id": "photo_gig",
"label": "Small paid photo shoot",
"category": "Skilled",
"minutes": 120,
"energy": 24,
"basePay": 38,
"payScale": 0.95,
"requires": {
"photography": 3,
"charm": 1,
"art": 1
},
"min": {
"photography": 40,
"charm": 35,
"art": 35
},
"gains": {
"photography": 0.25,
"art": 0.1,
"charm": 0.08
},
"text": [
"You take a small paid shoot, manage light, pose the subject without sounding awkward, and deliver shots that do not look accidental."
],
"location": "loc11",
"availability": [
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc11",
"source": "Studio photo board",
"button": "Check the small photo board",
"min": {
"photography": 40,
"charm": 35,
"art": 35
},
"passText": "",
"failText": "The board is real work, but your portfolio is too thin. Build Photography, Charm, and Art.",
"girlIds": [
"g15",
"g6"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Art Studio has paid photo leads.",
"personOnly": true,
"prereqJobs": [
"content_photo_walk"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Valerie points you toward the smaller paid photo leads pinned behind the studio desk, the ones that pay enough to matter and look simple until a nervous client sits down.",
"\"Start with portraits, product shots, and profile images. Usable first. Interesting second.\"",
"\"Charge your battery, clean your lens, and do not promise mood when you have not handled focus.\"",
"She writes down the board contact in neat black ink."
]
}
},
{
"id": "massage_booking",
"label": "Massage booking",
"category": "Skilled",
"minutes": 90,
"energy": 27,
"basePay": 36,
"payScale": 0.92,
"requires": {
"massage": 3,
"empathy": 1,
"focus": 1
},
"min": {
"massage": 38,
"empathy": 33,
"focus": 33
},
"gains": {
"massage": 0.25,
"empathy": 0.1,
"focus": 0.08
},
"text": [
"You take a massage booking, ask what hurts, work slowly through the tight areas, and finish only when the client can move more easily."
],
"location": "loc14",
"availability": [
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc14",
"source": "Spa front desk",
"button": "Ask the spa desk about bookings",
"min": {
"massage": 38,
"empathy": 33,
"focus": 33
},
"passText": "",
"failText": "They do not trust your hands yet. Build Massage, Empathy, and Focus.",
"girlIds": [
"g13"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Wellness Spa has massage bookings.",
"personOnly": true,
"prereqJobs": [
"massage_class"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Bianca checks your hands before she gives you the front desk lead.",
"\"Ask where it hurts, start lighter than your ego wants, and keep your pressure steady.\"",
"\"People remember rushed hands. They also remember when someone listened the first time they said too much.\"",
"She gives you the booking contact and tells you to keep your nails short."
]
}
},
{
"id": "fitness_coach_intro",
"label": "Beginner fitness coaching",
"category": "Skilled",
"minutes": 120,
"energy": 36,
"basePay": 54,
"payScale": 0.9,
"requires": {
"sports": 3,
"fitness": 3,
"charm": 1
},
"min": {
"sports": 40,
"fitness": 35
},
"gains": {
"sports": 0.21,
"fitness": 0.16,
"charm": 0.08
},
"text": [
"You coach a beginner through basic movement, correct bad form, and keep them working without making them feel stupid."
],
"location": "loc1",
"availability": [
"Dawn",
"Morning",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc1",
"source": "Leah Cross",
"button": "Inquire about coaching work",
"personOnly": true,
"prereqJobs": [
"paid_gym_plan"
],
"min": {
"sports": 40,
"fitness": 35
},
"passText": "",
"inquiryPassText": "",
"failText": "Leah folds her arms and refuses to put beginners in front of you yet.",
"inquiryFailText": "She says you are not ready yet.",
"girlIds": [
"g4"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Follow Leah's basic gym plan before asking about coaching work.",
"npcSuccessLines": [
"Leah looks you over like she is deciding whether you would survive correcting someone else's squat.",
"\"You would not be training athletes. You would help new people get through their first weeks without wrecking their knees.\"",
"\"Show the movement, correct the obvious stuff, and keep them working without turning it into a lecture.\"",
"She puts the beginner roster on the desk and says your own form needs to be clean before you touch anyone else's."
]
}
},
{
"id": "art_studio_assist",
"label": "Art studio assistant",
"category": "Creative",
"minutes": 90,
"energy": 18,
"basePay": 26,
"payScale": 0.75,
"requires": {
"art": 2,
"focus": 1,
"photography": 1
},
"min": {
"art": 30,
"focus": 25,
"photography": 25
},
"gains": {
"art": 0.2,
"photography": 0.11,
"focus": 0.07
},
"text": [
"You prep the studio, move props, clean brushes, hold lights, and do the unglamorous work that lets someone else make art."
],
"location": "loc11",
"availability": [
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc11",
"source": "Art Studio manager",
"button": "Ask about studio assistant work",
"min": {
"art": 30,
"focus": 25,
"photography": 25
},
"passText": "",
"failText": "They need someone with better eyes and better discipline. Build Art, Focus, and Photography.",
"girlIds": [
"g2",
"g6"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Art Studio needs assistants.",
"personOnly": true,
"prereqJobs": [
"photo_course"
],
"npcSuccessLines": [
"Valerie gives you a studio assistant lead that is mostly practical work hidden under creative panic.",
"\"Props, lights, tape, brushes, labels, boxes. If you can help quietly, they will remember you.\"",
"\"Do not try to look artistic while carrying things. Just carry them correctly.\"",
"She gives you the manager contact and notes which door sticks."
]
}
},
{
"id": "music_session_help",
"label": "Sound booth session help",
"category": "Creative",
"minutes": 120,
"energy": 21,
"basePay": 30,
"payScale": 0.78,
"requires": {
"music": 3,
"focus": 1,
"charm": 1
},
"min": {
"music": 30,
"focus": 25,
"charm": 25
},
"gains": {
"music": 0.25,
"focus": 0.09,
"charm": 0.06
},
"text": [
"You help in a small music session, carry gear, watch levels, and learn when to speak and when to shut up and listen."
],
"location": "loc7",
"availability": [
"Evening",
"Late Evening"
],
"unlock": {
"location": "loc7",
"source": "Nightclub sound booth",
"button": "Ask the sound booth about session help",
"min": {
"music": 30,
"focus": 25,
"charm": 25
},
"passText": "",
"failText": "The sound booth is not babysitting you. Build Music, Focus, and Charm.",
"girlIds": [
"g5",
"g14"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Nightclub sound staff know paid music sessions.",
"personOnly": true,
"prereqJobs": [
"music_practice"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She points you toward sound booth session help, the kind of work where being quiet matters as much as being useful.",
"Carry gear, label cables, watch levels, and stay out of the way when people are trying to hear a take.",
"If someone asks for water, get water. If they ask for an opinion, keep it short and useful.",
"She gives you the rehearsal time and tells you to arrive before the band starts pretending they are early."
]
}
},
{
"id": "content_photo_walk",
"label": "Creator photo walk",
"category": "Creative",
"minutes": 90,
"energy": 18,
"basePay": 22,
"payScale": 0.8,
"requires": {
"photography": 2,
"art": 1,
"charm": 1
},
"min": {
"photography": 22,
"art": 22,
"charm": 22
},
"gains": {
"photography": 0.22,
"art": 0.14,
"charm": 0.07
},
"text": [
"You join a creator walk, find usable backdrops, take quick shots, and keep the mood moving before everyone gets bored."
],
"location": "loc8",
"availability": [
"Dawn",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc8",
"source": "Park creator meetup",
"button": "Join a creator photo walk",
"min": {
"photography": 22,
"art": 22,
"charm": 22
},
"passText": "",
"failText": "They want someone with a better eye and easier presence. Build Photography, Art, and Charm.",
"girlIds": [
"g2",
"g15"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "City Park creator meetups lead to content walks.",
"personOnly": true,
"prereqJobs": [
"photo_course"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She gives you a creator photo walk lead: paid chaos, simple shots, and people who need help looking less awkward.",
"You keep the group moving, spot usable backdrops, take fast photos, and keep everyone from wasting the light.",
"Do not wait for one perfect shot. Get enough good ones before everyone gets hungry, bored, or weird.",
"She sends the meetup pin and tells you to clear storage before you go."
]
}
},
{
"id": "recipe_test_notes",
"label": "Paid recipe test notes",
"category": "Creative",
"minutes": 90,
"energy": 18,
"basePay": 24,
"payScale": 0.72,
"requires": {
"cooking": 2,
"intelligence": 1,
"focus": 1
},
"min": {
"cooking": 30,
"intelligence": 25,
"focus": 25
},
"gains": {
"cooking": 0.2,
"intelligence": 0.09,
"focus": 0.08
},
"text": [
"You test a recipe and write notes a cook can actually use: texture, timing, heat, portions, and what broke when followed exactly."
],
"location": "loc6",
"availability": [
"Morning",
"Midday",
"Afternoon"
],
"unlock": {
"location": "loc6",
"source": "Cafe Row recipe tester",
"button": "Ask about recipe testing",
"min": {
"cooking": 30,
"intelligence": 25,
"focus": 25
},
"passText": "",
"failText": "They need useful notes, not appetite. Build Cooking, Intelligence, and Focus.",
"girlIds": [
"g7",
"g17"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Cafe Row has recipe testing work.",
"personOnly": true,
"prereqJobs": [
"cooking_class"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She gives you a recipe test lead where the notes matter as much as the cooking.",
"Cook the recipe exactly as written. Time it, measure it, taste it, and mark where the instructions fall apart.",
"If you change three things and call it feedback, the cook will hate you, and they will be right.",
"She sends you the tester sheet and warns that messy notes are useless notes."
]
}
},
{
"id": "campus_tutoring",
"label": "Library tutoring client",
"category": "Creative",
"minutes": 90,
"energy": 21,
"basePay": 34,
"payScale": 0.85,
"requires": {
"intelligence": 3,
"focus": 2,
"empathy": 1
},
"min": {
"intelligence": 32,
"empathy": 27,
"focus": 27
},
"gains": {
"intelligence": 0.22,
"focus": 0.12,
"empathy": 0.09
},
"text": [
"You tutor someone through a problem set, slow down when they panic, and explain the same point three ways until it sticks."
],
"location": "loc5",
"availability": [
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc5",
"source": "University Library tutoring desk",
"button": "Ask the tutoring desk",
"min": {
"intelligence": 32,
"empathy": 27,
"focus": 27
},
"passText": "",
"failText": "They need proof you can explain without getting impatient. Build Intelligence, Empathy, and Focus.",
"girlIds": [
"g11"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "University Library runs tutoring signups.",
"personOnly": true,
"prereqJobs": [
"study_block"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Mina explains the tutoring desk without dressing it up.",
"\"One student, one problem, one place where they stopped understanding the material.\"",
"\"If they panic, slow down. If they fake it, make them try the next step on paper.\"",
"She books you into the desk rotation and tells you to bring patience, not speeches."
]
}
},
{
"id": "free_run",
"label": "Jog around the block",
"category": "Training",
"minutes": 40,
"energy": 20,
"basePay": 0,
"payScale": 0,
"cost": 0,
"requires": {
"willpower": 1
},
"min": {},
"gains": {
"fitness": 0.24,
"willpower": 0.08
},
"text": [
"You jog around the block, keep moving until your shirt starts sticking to your back, and come home with your legs awake instead of just restless."
],
"location": "home",
"availability": [
"Anytime"
],
"alwaysUnlocked": true,
"unlock": {
"hint": "You can jog around the block from home whenever you have the stamina.",
"localSuccessLines": [
"No one gives you this one. You just step outside and run the block.",
"Pavement, crossings, stairs if you want them, and enough distance to make your legs burn.",
"It is simple training you can do when the day has room for it."
]
},
"maxPerDay": 2
},
{
"id": "paid_gym_plan",
"label": "Structured gym plan",
"category": "Training",
"minutes": 90,
"energy": 30,
"basePay": 0,
"payScale": 0,
"cost": 18,
"requires": {
"fitness": 1,
"sports": 1
},
"min": {},
"gains": {
"fitness": 0.5,
"sports": 0.2,
"willpower": 0.12
},
"text": [
"You follow a structured gym plan, burning stamina on sets that force your body to adapt."
],
"location": "loc1",
"availability": [
"Morning",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc1",
"source": "Leah Cross",
"button": "Inquire about gym training",
"personOnly": true,
"min": {},
"passText": "",
"inquiryPassText": "",
"failText": "Leah can give you a basic plan immediately.",
"girlIds": [
"g4"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Ask Leah about a basic gym plan.",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Leah offers the plan like a tool, not a miracle cure.",
"\"You get a written schedule, a few form checks, and a reason to stop wandering between machines.\"",
"\"Keep the weights honest, write down what you did, and do the warmup without turning it into the whole workout.\"",
"She leaves the plan at the desk for you and tells you to book it only when you are ready to follow it."
]
},
"relationshipGains": [
{
"girlId": "g4",
"trust": 0.18,
"lust": 0.14
}
]
},
{
"id": "study_block",
"label": "Focused study block",
"category": "Training",
"minutes": 90,
"energy": 15,
"basePay": 0,
"payScale": 0,
"cost": 0,
"requires": {
"focus": 1
},
"min": {},
"gains": {
"intelligence": 0.3,
"focus": 0.2,
"willpower": 0.08
},
"text": [
"You sit down for a real study block, remove distractions, and grind through material until the page starts making sense."
],
"location": "loc5",
"availability": [
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc5",
"source": "Library study rooms",
"button": "Ask about quiet study rooms",
"min": {},
"passText": "",
"failText": "You can use the library rooms whenever they are open.",
"girlIds": [
"g11"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "The University Library has proper study rooms.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Mina points you toward the study rooms instead of pretending there is a trick to it.",
"\"Pick one subject, sit down, and work until you can explain the page without staring at it.\"",
"\"No phone. No drifting. If you get stuck, write the question down instead of escaping into something easier.\"",
"She gives you the room hours and circles the quieter slots."
]
}
},
{
"id": "study_finance_library",
"label": "Study Finance in the library",
"category": "Training",
"minutes": 90,
"energy": 15,
"basePay": 0,
"payScale": 0,
"requires": {
"finance": 1,
"focus": 1,
"intelligence": 1
},
"min": {},
"gains": {
"finance": 0.26,
"intelligence": 0.08,
"focus": 0.07
},
"text": [
"You work through basic finance material in the library, turning terms, ledgers, risk, and return into something you can actually use."
],
"location": "loc5",
"availability": [
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc5",
"source": "University Library finance shelf",
"button": "Find the finance study shelf",
"min": {},
"passText": "",
"failText": "The finance shelf is open once you find the right material.",
"girlIds": [],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "University Library has a finance shelf you can turn into structured practice.",
"localSuccessLines": [
"You find the finance shelf in the library and stop treating it like a wall of hostile numbers.",
"The useful books are practical: budgets, ledgers, interest, risk, taxes, and enough examples to make the patterns repeat.",
"You copy a study path and mark the sections that can build Finance from zero instead of assuming you already know the language."
]
}
},
{
"id": "paper_trading_practice",
"label": "Paper trading practice",
"category": "Training",
"minutes": 120,
"energy": 18,
"basePay": 0,
"payScale": 0,
"cost": 12,
"requires": {
"finance": 1,
"focus": 1,
"willpower": 1
},
"min": {
"finance": 30,
"focus": 25,
"willpower": 25
},
"gains": {
"finance": 0.48,
"focus": 0.12,
"willpower": 0.08
},
"text": [
"You practice with paper trades, write down the reason for each move, and compare the result against what the market actually did."
],
"location": "loc13",
"availability": [
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc13",
"source": "Tessa Grant",
"button": "Ask Tessa about paper trading",
"personOnly": true,
"prereqJobs": [
"study_finance_library"
],
"min": {
"finance": 30,
"focus": 25,
"willpower": 25
},
"passText": "",
"failText": "Tessa says paper trading is only useful if you can already read the basics and stick to the plan. Build Finance, Focus, and Willpower first.",
"girlIds": [
"g3"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Tessa can teach you paper trading after you build solid Finance, Focus, and Willpower.",
"inquiryPassText": "",
"inquiryFailText": "She says you need stronger Finance, Focus, and Willpower before paper trading will help.",
"npcSuccessLines": [
"Tessa does not hand you a magic trick. She gives you a practice method.",
"\"No real money. Not yet. You write the trade, the reason, the risk, and the exit before you pretend you made a decision.\"",
"\"Then you check what actually happened and learn whether your idea was good or just lucky.\"",
"She gives you a paper trading routine and makes it very clear that the notes matter more than the fake wins."
]
}
},
{
"id": "coding_course",
"label": "Online coding course",
"category": "Training",
"minutes": 120,
"energy": 18,
"basePay": 0,
"payScale": 0,
"cost": 25,
"requires": {
"informatic": 1,
"focus": 1
},
"min": {},
"gains": {
"informatic": 0.3,
"intelligence": 0.1,
"focus": 0.08
},
"text": [
"You work through a coding lesson with exercises that reward clean logic and working tests."
],
"location": "loc5",
"availability": [
"Afternoon",
"Evening",
"Late Evening"
],
"unlock": {
"location": "loc5",
"source": "Library tech course board",
"button": "Check the online course board",
"min": {},
"passText": "",
"failText": "The course is available once you find the board.",
"girlIds": [
"g1",
"g8",
"g16"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "The University Library lists tech courses.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She recommends an online coding course that starts small enough to hurt your pride instead of your wallet.",
"It begins with simple exercises, clean logic, and tests that tell you when you broke something.",
"Skip the boring parts and you will spend twice as long staring at errors that are your fault.",
"She sends the course link and tells you not to buy anything extra until the basics stop scaring you."
]
}
},
{
"id": "cooking_class",
"label": "Cooking class",
"category": "Training",
"minutes": 120,
"energy": 21,
"basePay": 0,
"payScale": 0,
"cost": 22,
"requires": {
"cooking": 1
},
"min": {},
"gains": {
"cooking": 0.5,
"focus": 0.12
},
"text": [
"You take a practical cooking class, handle the ingredients yourself, and leave with one technique you can repeat without the teacher."
],
"location": "loc6",
"availability": [
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc6",
"source": "Cafe Row class flyers",
"button": "Read the cooking class flyers",
"min": {},
"passText": "",
"failText": "The class is open once you know where it is.",
"girlIds": [
"g7",
"g17"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Cafe Row advertises cooking classes.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She points you to a cooking class that focuses on basics instead of pretending cooking is magic.",
"Knife work, timing, heat, cleanup: the simple things that turn into problems when people skip them.",
"You leave with one dish you can repeat on purpose. That is worth more than one lucky dinner.",
"She gives you the class time and tells you not to show up starving."
]
}
},
{
"id": "massage_class",
"label": "Massage class",
"category": "Training",
"minutes": 120,
"energy": 21,
"basePay": 0,
"payScale": 0,
"cost": 28,
"requires": {
"massage": 1,
"empathy": 1
},
"min": {},
"gains": {
"massage": 0.64,
"empathy": 0.16
},
"text": [
"You practice bodywork basics under supervision, correcting hand placement before bad habits settle in."
],
"location": "loc14",
"availability": [
"Morning",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc14",
"source": "Spa training board",
"button": "Ask about massage classes",
"min": {},
"passText": "",
"failText": "The class is available once you find the spa board.",
"girlIds": [
"g13"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Wellness Spa lists massage classes.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Bianca talks about the class like bad technique personally annoys her.",
"\"Pressure, posture, hand placement, and learning when to ask before you go deeper.\"",
"\"Most people rush because slow work makes them feel awkward. That is exactly why they need practice.\"",
"She points out the class listing and taps the part about clean hands twice."
]
}
},
{
"id": "sketching_practice",
"label": "Sketching practice",
"category": "Training",
"minutes": 75,
"energy": 15,
"cost": 10,
"basePay": 0,
"payScale": 0,
"requires": {
"art": 1,
"focus": 1
},
"min": {},
"gains": {
"art": 0.24,
"focus": 0.08
},
"text": [
"You buy a cheap canvas board and work through basic sketch practice, forcing yourself to draw the shape in front of you instead of the cleaner version your brain keeps inventing."
],
"location": "loc11",
"availability": [
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc11",
"source": "Art Studio sketch table",
"button": "Check the sketch practice table",
"min": {},
"passText": "",
"failText": "The sketch practice table is open once you find it.",
"girlIds": [],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "The Art Studio has open sketch practice.",
"localSuccessLines": [
"You find a corner of the Art Studio set up for basic sketch practice.",
"The table has cheap canvas boards, worn pencils, reference objects, and a note reminding beginners to draw badly before they draw well.",
"Nobody expects finished work. The point is repetition, observation, and learning to stop guessing the shape before you look at it."
]
}
},
{
"id": "composition_study",
"label": "Composition study",
"category": "Training",
"minutes": 90,
"energy": 18,
"cost": 30,
"basePay": 0,
"payScale": 0,
"requires": {
"art": 2,
"focus": 1,
"intelligence": 1
},
"min": {},
"gains": {
"art": 0.38,
"focus": 0.12,
"intelligence": 0.07,
"photography": 0.06
},
"text": [
"You buy a better canvas and study composition, blocking out shape, contrast, balance, and where the eye moves before the details start to matter."
],
"location": "loc11",
"availability": [
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc11",
"source": "Studio composition guidance",
"button": "Ask about composition study",
"min": {},
"passText": "",
"failText": "You need the studio guidance first.",
"girlIds": [
"g2",
"g15",
"g6"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Art-focused girls can point you toward composition study.",
"personOnly": true,
"prereqJobs": [
"sketching_practice"
],
"inquiryPassText": "",
"inquiryFailText": "She says the paid composition study is available once you have the studio lead.",
"npcSuccessLines": [
"Valerie points you toward structured composition study at the Art Studio.",
"\"Not prettier details. Structure. Shape, balance, contrast, where the eye goes when it thinks no one is guiding it.\"",
"\"Buy the better canvas. Cheap materials teach cheap patience.\"",
"She writes the supply cost beside the contact before you can pretend you did not see it."
]
}
},
{
"id": "photo_course",
"label": "Photography course",
"category": "Training",
"minutes": 120,
"energy": 18,
"basePay": 0,
"payScale": 0,
"cost": 24,
"requires": {
"photography": 1,
"art": 1
},
"min": {},
"gains": {
"photography": 0.5,
"art": 0.16,
"focus": 0.1
},
"text": [
"You work through a photography lesson on light, framing, and the difference between a lucky shot and a controlled one."
],
"location": "loc11",
"availability": [
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc11",
"source": "Studio course board",
"button": "Check the photography course board",
"min": {},
"passText": "",
"failText": "The course is available once you find the board.",
"girlIds": [
"g2",
"g15"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Art Studio has photo courses.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She points you to a practical photography course, not the one with the prettiest poster.",
"Light, framing, distance, and simple direction are the difference between a photo that looks found and one that looks made.",
"You will take plenty of boring shots first. Good. Boring shots show you what changed.",
"She gives you the course board address and tells you to bring a charged camera."
]
}
},
{
"id": "music_practice",
"label": "Music practice",
"category": "Training",
"minutes": 90,
"energy": 15,
"basePay": 0,
"payScale": 0,
"cost": 0,
"requires": {
"music": 1,
"focus": 1
},
"min": {},
"gains": {
"music": 0.3,
"focus": 0.1
},
"text": [
"You take a proper practice slot and repeat the hard parts until your hands and ears stop fighting each other."
],
"location": "loc7",
"availability": [
"Evening",
"Late Evening"
],
"unlock": {
"location": "loc7",
"source": "Nightclub rehearsal listing",
"button": "Check the rehearsal listing",
"min": {},
"passText": "",
"failText": "You can practice once you know where the rehearsal slots are posted.",
"girlIds": [
"g5",
"g14"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Nightclub listings reveal rehearsal slots.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She gives you a rehearsal practice lead that people actually use for practice.",
"You repeat the parts that fall apart, listen back, and fix one ugly section at a time.",
"If you only play what already sounds good, you are just entertaining yourself.",
"She gives you the room times and warns that the walls are thin enough to keep you honest."
]
}
},
{
"id": "social_drills",
"label": "Social confidence drills",
"category": "Training",
"minutes": 75,
"energy": 15,
"basePay": 0,
"payScale": 0,
"cost": 0,
"requires": {
"charm": 1,
"willpower": 1
},
"min": {},
"gains": {
"charm": 0.28,
"willpower": 0.16,
"empathy": 0.12
},
"text": [
"You run approach drills, get used to strangers reacting in real time, and stop treating every conversation like a verdict."
],
"location": "loc2",
"availability": [
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc2",
"source": "Mall promo coach",
"button": "Ask about promo confidence drills",
"min": {},
"passText": "",
"failText": "The drills are easy to learn once you find someone using them.",
"girlIds": [
"g10"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Mall promoters can teach social drills.",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Clara laughs when she says it, but the drills are real.",
"\"Start conversations, keep them short, notice when someone wants out, and leave before they hate you.\"",
"\"It is not about becoming charming overnight. It is about not freezing when someone answers.\"",
"She gives you the coach contact and says the first session is mostly surviving embarrassment."
]
}
},
{
"id": "expert_private_coding",
"label": "High-stakes private coding contract",
"category": "Expert",
"minutes": 240,
"energy": 48,
"basePay": 232,
"payScale": 1.45,
"requires": {
"informatic": 4,
"focus": 3,
"intelligence": 3
},
"min": {
"informatic": 70,
"focus": 53,
"intelligence": 50
},
"gains": {
"informatic": 0.31,
"focus": 0.12,
"intelligence": 0.1
},
"text": [
"You take a private coding contract where the client pays well because the deadline is ugly and the codebase is worse."
],
"location": "loc10",
"availability": [
"Evening",
"Late Evening"
],
"unlock": {
"location": "loc10",
"source": "Private software recruiter",
"button": "Talk to the software recruiter",
"min": {
"informatic": 70,
"focus": 53,
"intelligence": 50
},
"passText": "",
"failText": "The recruiter does not see contract-level skill yet. Build Informatic, Focus, and Intelligence.",
"girlIds": [
"g8",
"g16"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Office District recruiters hold private coding contracts.",
"personOnly": true,
"prereqJobs": [
"freelance_coding"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She forwards a private coding contract lead with enough money attached to make the mess your problem for a few hours.",
"Old system, missed deadline, nervous client, and no room for ego.",
"Find the failure, document everything, and do not rebuild half the project because you want to feel clever.",
"She sends the recruiter contact with a warning to answer professionally or not at all."
]
}
},
{
"id": "expert_financial_cleanup",
"label": "Complex financial cleanup",
"category": "Expert",
"minutes": 210,
"energy": 39,
"basePay": 208,
"payScale": 1.35,
"requires": {
"finance": 4,
"focus": 3,
"intelligence": 2
},
"min": {
"finance": 67,
"focus": 50,
"intelligence": 44
},
"gains": {
"finance": 0.31,
"focus": 0.11,
"intelligence": 0.09
},
"text": [
"You work through a complex financial cleanup, trace bad entries, and make the numbers line up without hiding the mess."
],
"location": "loc13",
"availability": [
"Morning",
"Midday",
"Afternoon"
],
"unlock": {
"location": "loc13",
"source": "Financial cleanup broker",
"button": "Ask about complex cleanup work",
"min": {
"finance": 67,
"focus": 50,
"intelligence": 44
},
"passText": "",
"failText": "The broker needs proof you will not damage the numbers. Build Finance, Focus, and Intelligence.",
"girlIds": [
"g3",
"g12"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Financial District brokers offer complex cleanup work.",
"personOnly": true,
"prereqJobs": [
"bookkeeping_help"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She gives you a financial cleanup lead that pays well because the lies are not small.",
"The books are dirty: missing entries, duplicate payments, and numbers moved just far enough that someone hoped nobody would check.",
"Trace what happened, mark what can be proven, and leave notes clean enough that nobody can pretend they misunderstood.",
"She forwards the broker contact and warns you not to touch this unless you can keep your notes sharp."
]
}
},
{
"id": "expert_portrait_session",
"label": "Premium portrait session",
"category": "Expert",
"minutes": 180,
"energy": 39,
"basePay": 118,
"payScale": 1.4,
"requires": {
"photography": 4,
"art": 2,
"charm": 2
},
"min": {
"photography": 62,
"art": 40,
"charm": 38
},
"gains": {
"photography": 0.31,
"art": 0.12,
"charm": 0.09
},
"text": [
"You run a premium portrait session, manage the subject, control the light, and deliver images worth the higher fee."
],
"location": "loc11",
"availability": [
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc11",
"source": "Portrait studio owner",
"button": "Ask about premium portrait sessions",
"min": {
"photography": 62,
"art": 40,
"charm": 38
},
"passText": "",
"failText": "Premium clients need better work than you can promise yet. Build Photography, Art, and Charm.",
"girlIds": [
"g6"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Art Studio has premium portrait overflow.",
"personOnly": true,
"prereqJobs": [
"photo_gig"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Valerie is quiet about the premium portrait sessions, which somehow makes them sound more serious.",
"\"These clients do not need to be flattered. They need to survive looking at themselves.\"",
"\"Light, pose, expression, delivery. If any one of those is false, the whole portrait lies badly.\"",
"She gives you the studio contact and underlines the booking fee once."
]
}
},
{
"id": "expert_private_catering",
"label": "Private catering prep",
"category": "Expert",
"minutes": 240,
"energy": 54,
"basePay": 150,
"payScale": 1.32,
"requires": {
"cooking": 4,
"hustle": 3,
"focus": 2
},
"min": {
"cooking": 62,
"hustle": 48,
"focus": 41
},
"gains": {
"cooking": 0.29,
"hustle": 0.12,
"focus": 0.09
},
"text": [
"You prep private catering under a tight deadline, balancing taste, timing, portions, and the fact that rich clients notice everything."
],
"location": "loc4",
"availability": [
"Dawn",
"Morning",
"Midday"
],
"unlock": {
"location": "loc4",
"source": "Private residence caterer",
"button": "Ask the residence caterer about prep work",
"min": {
"cooking": 62,
"hustle": 48,
"focus": 41
},
"passText": "",
"failText": "Private catering needs better Cooking, Hustle, and Focus.",
"girlIds": [
"g17"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "High Income Residential has private catering contacts.",
"personOnly": true,
"prereqJobs": [
"meal_prep_client"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Olivia speaks from experience and a little remembered stress.",
"\"Trays, portions, sauces, backups. Everything has to look calm by the time guests walk in.\"",
"\"The trick is doing the ugly prep early enough that nobody sees it happen.\"",
"She passes you the caterer contact and says one late item can ruin the whole table."
]
}
},
{
"id": "expert_sports_program",
"label": "Custom fitness program",
"category": "Expert",
"minutes": 180,
"energy": 48,
"basePay": 145,
"payScale": 1.28,
"requires": {
"sports": 4,
"fitness": 3,
"charm": 1
},
"min": {
"sports": 60,
"fitness": 51,
"charm": 26
},
"gains": {
"sports": 0.28,
"fitness": 0.16,
"charm": 0.08
},
"text": [
"You build a custom fitness program, correct the client's weak points, and make the session hard enough to justify the price."
],
"location": "loc1",
"availability": [
"Dawn",
"Morning",
"Afternoon"
],
"unlock": {
"location": "loc1",
"source": "Leah Cross",
"button": "Inquire about custom programs",
"personOnly": true,
"prereqJobs": [
"fitness_coach_intro"
],
"min": {
"sports": 60,
"fitness": 51,
"charm": 26
},
"passText": "",
"inquiryPassText": "",
"failText": "Leah says custom clients will expose every weak spot you still have.",
"inquiryFailText": "She says you are not ready yet.",
"girlIds": [
"g4"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Earn Leah's trust on beginner coaching before asking about custom programs.",
"npcSuccessLines": [
"Leah gets more selective when the work involves custom clients.",
"\"You watch how they move, find what is weak, build around it, and adjust when their body argues back.\"",
"\"Yelling until someone sweats is easy. Building something they can repeat is the job.\"",
"She opens the custom roster for you and says one careless plan can wreck a month of progress."
]
}
},
{
"id": "expert_therapeutic_massage",
"label": "Therapeutic massage booking",
"category": "Expert",
"minutes": 150,
"energy": 42,
"basePay": 110,
"payScale": 1.35,
"requires": {
"massage": 4,
"empathy": 3,
"focus": 2
},
"min": {
"massage": 64,
"empathy": 44,
"focus": 38
},
"gains": {
"massage": 0.32,
"empathy": 0.1,
"focus": 0.08
},
"text": [
"You take a therapeutic massage booking, ask about the pain first, and work through the session with slow pressure, clear check-ins, and no rushed showmanship."
],
"location": "loc14",
"availability": [
"Morning",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc14",
"source": "Spa therapy coordinator",
"button": "Ask about therapeutic bookings",
"min": {
"massage": 64,
"empathy": 44,
"focus": 38
},
"passText": "",
"failText": "Therapeutic work needs much better Massage, Empathy, and Focus.",
"girlIds": [
"g13"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Wellness Spa has therapeutic bookings.",
"personOnly": true,
"prereqJobs": [
"massage_booking"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Bianca lowers her voice for this lead.",
"\"These clients have real pain, old injuries, or both. You ask questions first and keep your pride out of your hands.\"",
"\"Work slowly. Stop when something feels wrong. Do not chase a knot like you are trying to win a fight.\"",
"She gives you the coordinator contact and says one bad session can close that door for good."
]
}
},
{
"id": "expert_music_production",
"label": "Paid music production help",
"category": "Expert",
"minutes": 180,
"energy": 36,
"basePay": 105,
"payScale": 1.3,
"requires": {
"music": 4,
"focus": 3,
"art": 2
},
"min": {
"music": 60,
"focus": 42,
"art": 34
},
"gains": {
"music": 0.31,
"focus": 0.1,
"art": 0.08
},
"text": [
"You help clean up a paid music project: cutting rough sections, fixing timing problems, balancing parts, and making the finished track sound deliberate."
],
"location": "loc7",
"availability": [
"Evening",
"Late Evening"
],
"unlock": {
"location": "loc7",
"source": "Nightclub producer contact",
"button": "Ask about production help",
"min": {
"music": 60,
"focus": 42,
"art": 34
},
"passText": "",
"failText": "They need better Music, Focus, and Art before they hand you paid tracks.",
"girlIds": [
"g14"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Nightclub producers need music production help.",
"personOnly": true,
"prereqJobs": [
"music_session_help"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Hana explains the production work without making it sound glamorous.",
"\"Cut rough sections, clean timing, balance tracks, and make the song stop fighting itself.\"",
"\"You are not there to take over. You are there to help people hear what they were trying to make.\"",
"She gives you the producer contact and warns that every hour starts with someone blaming the headphones."
]
}
},
{
"id": "expert_private_tutoring",
"label": "Advanced private tutoring",
"category": "Expert",
"minutes": 150,
"energy": 33,
"basePay": 152,
"payScale": 1.25,
"requires": {
"intelligence": 4,
"empathy": 2,
"focus": 3
},
"min": {
"intelligence": 65,
"focus": 50,
"empathy": 38
},
"gains": {
"intelligence": 0.29,
"focus": 0.12,
"empathy": 0.08
},
"text": [
"You take an advanced tutoring client and keep the session moving through material that does not forgive lazy explanations."
],
"location": "loc5",
"availability": [
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc5",
"source": "Advanced tutoring coordinator",
"button": "Ask about advanced tutoring",
"min": {
"intelligence": 65,
"focus": 50,
"empathy": 38
},
"passText": "",
"failText": "Advanced tutoring needs higher Intelligence, Focus, and Empathy.",
"girlIds": [
"g11"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "University Library has advanced tutoring leads.",
"personOnly": true,
"prereqJobs": [
"campus_tutoring"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Mina warns you before she gives you the advanced clients.",
"\"Hard material, bad habits, and usually a deadline they ignored until it became everyone's emergency.\"",
"\"Keep them solving problems out loud. Explain clearly without performing how smart you are.\"",
"She gives you the coordinator contact and a list of topics she refuses to let you fake."
]
}
},
{
"id": "nightclub_bouncer",
"label": "Nightclub door security",
"category": "Expert",
"minutes": 180,
"energy": 45,
"basePay": 116,
"payScale": 0.82,
"requires": {
"fitness": 3,
"dominance": 3,
"willpower": 1
},
"min": {
"fitness": 62,
"dominance": 36
},
"gains": {
"dominance": 0.27,
"fitness": 0.18,
"willpower": 0.1
},
"text": [
"You work the nightclub door, hold the line, stop drunk arguments before they spread, and make people understand that moving past you is not optional."
],
"location": "loc7",
"availability": [
"Evening",
"Late Evening",
"Night"
],
"unlock": {
"location": "loc7",
"source": "Nightclub head of security",
"button": "Ask the head of security about door work",
"min": {
"fitness": 62,
"dominance": 36
},
"passText": "",
"failText": "He does not offer the job. You need at least Fitness 50 and Dominance 30 before he trusts you near the door.",
"girlIds": [
"g18"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Nightclub security needs strength and presence.",
"personOnly": true,
"prereqJobs": [
"barback_shift"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Selene explains door work without smiling.",
"\"You hold the line, check the mood, and stop trouble while it is still small enough to move.\"",
"\"If you need to prove how tough you are, you are already making the night worse.\"",
"She gives you the security contact and tells you the first rule is staying calmer than the drunkest person outside."
]
}
},
{
"id": "neighborhood_repair_helper",
"label": "Neighborhood repair helper",
"category": "Basic",
"minutes": 90,
"energy": 24,
"basePay": 30,
"payScale": 0.55,
"requires": {
"fitness": 2,
"hustle": 1,
"focus": 1
},
"min": {
"fitness": 12,
"hustle": 10
},
"gains": {
"fitness": 0.11,
"hustle": 0.09,
"focus": 0.04
},
"text": [
"You spend the block helping with small building repairs around the cheaper blocks: carrying tools, holding ladders, moving broken furniture, patching minor damage, and cleaning up before the next call."
],
"location": "loc3",
"availability": [
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc3",
"source": "Apartment maintenance shed",
"button": "Ask the maintenance guy about day work",
"min": {
"fitness": 12,
"hustle": 10
},
"passText": "",
"failText": "He does not need another slow body following him around. Build Fitness and Hustle.",
"girlIds": [],
"slots": [
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Apartment maintenance shed",
"localSuccessLines": [
"The maintenance guy gives you a number for small repair calls around the cheaper blocks.",
"The work is practical: carry tools, hold ladders, move broken furniture, patch minor damage, and clean up after.",
"You take it because the calls are straightforward and people actually need the help."
]
}
},
{
"id": "private_house_assistant",
"label": "Private house assistant",
"category": "Service",
"minutes": 150,
"energy": 30,
"basePay": 48,
"payScale": 0.7,
"requires": {
"charm": 2,
"focus": 2,
"empathy": 1
},
"min": {
"charm": 28,
"focus": 23
},
"gains": {
"focus": 0.16,
"charm": 0.1,
"empathy": 0.07
},
"text": [
"You help inside a private house for a long block: taking deliveries, preparing guest rooms, running quiet errands, and fixing small problems before the owner has to deal with them."
],
"location": "loc4",
"availability": [
"Morning",
"Midday",
"Afternoon"
],
"unlock": {
"location": "loc4",
"source": "Estate notice board",
"button": "Check the estate notice board",
"min": {
"charm": 28,
"focus": 23
},
"passText": "",
"failText": "The ad expects better manners and focus than you can show right now.",
"girlIds": [],
"slots": [
"Morning",
"Midday",
"Afternoon"
],
"minutes": 10,
"hint": "Estate notice board",
"localSuccessLines": [
"The estate board lists the position with very specific expectations and no patience for confusion.",
"You would take deliveries, prepare guest rooms, run small errands, and quietly fix problems before the owner notices.",
"The pay is better because the mistakes happen inside an expensive house."
]
}
},
{
"id": "park_bootcamp_helper",
"label": "Park bootcamp helper",
"category": "Service",
"minutes": 90,
"energy": 33,
"basePay": 38,
"payScale": 0.62,
"requires": {
"fitness": 2,
"sports": 2,
"charm": 1
},
"min": {
"fitness": 20,
"sports": 16
},
"gains": {
"sports": 0.16,
"fitness": 0.13,
"charm": 0.06
},
"text": [
"You help run a park bootcamp, demonstrate simple drills, correct sloppy movement, and keep tired people from quitting before the session ends."
],
"location": "loc8",
"availability": [
"Dawn",
"Morning",
"Evening"
],
"unlock": {
"location": "loc8",
"source": "Park bootcamp coach",
"button": "Talk to the bootcamp coach",
"min": {
"fitness": 20,
"sports": 16
},
"passText": "",
"failText": "The coach needs someone fitter and more sport-literate before putting them in front of beginners.",
"girlIds": [
"g9",
"g19"
],
"slots": [
"Dawn",
"Morning",
"Evening"
],
"minutes": 10,
"hint": "Park bootcamp coach",
"personOnly": true,
"prereqJobs": [
"beach_volleyball_drills"
],
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"She points you toward a park bootcamp coach who needs help keeping the group moving.",
"You demonstrate drills, fix obvious movement problems, count sets, and keep people from quitting when it stops being fun.",
"The coach runs the program. You keep bodies moving and morale alive.",
"She gives you the meeting time and says to bring water for yourself, not just advice for everyone else."
]
}
},
{
"id": "beach_kiosk_shift",
"label": "Beach kiosk shift",
"category": "Basic",
"minutes": 120,
"energy": 27,
"basePay": 26,
"payScale": 0.58,
"requires": {
"hustle": 2,
"charm": 1,
"willpower": 1
},
"min": {
"hustle": 12,
"charm": 10
},
"gains": {
"hustle": 0.11,
"charm": 0.06,
"willpower": 0.04
},
"text": [
"You work a beachfront kiosk through heat, sand, tourists, and small complaints, selling drinks and rentals while pretending the sun is not cooking you."
],
"location": "loc9",
"availability": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc9",
"source": "Beachfront rental kiosk",
"button": "Ask the kiosk owner about shifts",
"min": {
"hustle": 12,
"charm": 10
},
"passText": "",
"failText": "The kiosk needs someone quicker and easier with customers. Build Hustle and Charm.",
"girlIds": [
"g9"
],
"slots": [
"Dawn",
"Morning",
"Midday",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Beachfront rental kiosk",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Rita sighs like the kiosk has personally tested her patience.",
"\"Drinks, rentals, counters, tourist questions, sand in places sand should not reach.\"",
"\"It is not complicated. It is just constant, and constant is what wears people down.\"",
"She gives you the owner's number and tells you to bring water before the sun turns mean."
]
}
},
{
"id": "beach_volleyball_drills",
"label": "Beach volleyball drills",
"category": "Training",
"minutes": 75,
"energy": 27,
"cost": 0,
"basePay": 0,
"payScale": 0,
"requires": {
"fitness": 1,
"sports": 1
},
"min": {},
"gains": {
"sports": 0.26,
"fitness": 0.16,
"willpower": 0.07
},
"text": [
"You join beach volleyball drills, fight through sand under your feet, and learn fast footwork from people who punish every lazy step."
],
"location": "loc9",
"availability": [
"Dawn",
"Morning",
"Afternoon",
"Evening"
],
"unlock": {
"location": "loc9",
"source": "Beach volleyball group",
"button": "Join the beach volleyball group",
"min": {},
"passText": "",
"failText": "The group is open once you find them.",
"girlIds": [
"g9"
],
"slots": [
"Dawn",
"Morning",
"Afternoon",
"Evening"
],
"minutes": 10,
"hint": "Beach volleyball group",
"personOnly": true,
"inquiryPassText": "",
"inquiryFailText": "She says you are not ready yet.",
"npcSuccessLines": [
"Rita waves you over before you can turn the idea into a big decision.",
"\"You move in sand, chase short balls, work on footwork, and learn why standing still is not the same as being ready.\"",
"\"You will look stupid for a while. Everyone does. Then your body starts catching up.\"",
"She gives you the group times and tells you to wear something you can sweat through."
]
}
}
]
END_JOBS %/<<run setup.CC.init()>>
<<set $cc.view = "journal">>
<<set $cc.passageHint = "Journal">>
<<= setup.CC.view("journal") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("home")>>
<<set $cc.view = "home">>
<<set $cc.passageHint = "Home">>
<<= setup.CC.view("home") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc1")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 001 - Gym">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc2")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 002 - Mall">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc3")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 003 - Low Income Residential">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc4")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 004 - High Income Residential">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc5")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 005 - University Library">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc6")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 006 - Cafe Row">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc7")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 007 - Nightclub">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc8")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 008 - City Park">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc9")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 009 - Beachfront">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc10")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 010 - Office District">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc11")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 011 - Art Studio">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc12")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 012 - Transit Plaza">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc13")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 013 - Financial District">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<run setup.CC.openLocation("loc14")>>
<<set $cc.view = "location">>
<<set $cc.passageHint = "Location 014 - Wellness Spa">>
<<= setup.CC.view("location") >><<run setup.CC.init()>>
<<set $cc.view = "map">>
<<set $cc.passageHint = "Map">>
<<= setup.CC.view("map") >><<run setup.CC.init()>>
<<set $cc.view = "home">>
<<set $cc.passageHint = "Home">>
<<= setup.CC.view("home") >><<run setup.CC.init()>>
<<set $cc.view = "perks">>
<<set $cc.passageHint = "Perks">>
<<= setup.CC.view("perks")>>/% REACTION_DATA
{
"girlId": "g0",
"girl": "Maya Bell",
"readyVariable": "dialogue001ready",
"notes": [],
"responses": [
{
"action": "talk_cooking",
"success": [
"Maya turns fully toward you and leaves the cup in her hand untouched.",
"Maya stops teasing and asks how you learned to cook."
],
"failure": [
"Maya presses her lips together and points out the step you skipped.",
"Her eyes drift back to what she was doing while you keep talking."
]
},
{
"action": "massage_start",
"success": [
"Maya draws her hair over one shoulder and lowers her head.",
"Maya rolls one shoulder, then turns her back enough for you to reach it."
],
"failure": [
"Maya steps out of reach and rubs the back of her own neck.",
"She keeps facing you, with both arms folded over her chest."
]
}
]
}
END_REACTION_DATA %//% FIRST_TIME_DATA
{
"girlId": "g8",
"girl": "Elena Park",
"notes": [],
"moments": {
"first_meeting": {
"text": [
"You introduce yourself. Elena waits until you are done before she answers.",
"\"Elena.\"",
"She repeats your name once, quietly, then gives you a small smile.",
"You ask what she does.",
"\"Data work, mostly. Reports, forecasts, the boring part people want finished before lunch.\"",
"You ask what makes it boring.",
"Her smile gets a little easier.",
"\"Most of it is not boring. It is just hard to explain without sounding boring.\""
]
},
"first_phone_success": {
"text": [
"Elena starts to answer, then stops herself.",
"\"Actually... you can have my number.\"",
"She gives it to you and watches while you save it.",
"\"Text first. I do not always answer numbers I do not know.\"",
"You tell her that is fine.",
"She nods, then adds before the pause can get awkward.",
"\"And tell me who you are. I am bad at saving contacts properly.\""
]
},
"first_address_success": {
"text": [
"Elena gives you her address only after checking that you heard the whole question.",
"\"You will not turn up without asking, right?\"",
"You say you will not.",
"She studies you for a second, then gives you the address.",
"\"Good. I know that sounds dramatic. I just like knowing what my evening looks like.\"",
"Her shoulders loosen once it is said.",
"\"You can ask. I might even say yes.\""
]
},
"first_hug": {
"text": [
"When you step close, Elena sees the hug coming.",
"She does not move away. Her arms stay at her sides for a second, then come around your back.",
"The hold is light at first. When you do not rush to turn it into anything else, she settles into it.",
"Her cheek brushes your shoulder as she breathes out.",
"When you let go, she keeps one hand on your arm.",
"\"I was not expecting that.\"",
"She smiles, a little embarrassed.",
"\"It was nice, though.\""
]
},
"first_kiss_cheek": {
"text": [
"You lean in and kiss Elena's cheek.",
"She turns her face toward you a fraction too late, then touches the spot with two fingers.",
"\"You did that very quickly.\"",
"You ask if it was a mistake.",
"She shakes her head.",
"\"No. I just need a second to get used to you doing things like that.\"",
"Her hand drops, but her smile stays."
]
},
"first_dirty_whisper": {
"text": [
"You lean close enough that Elena has to listen.",
"You tell her you want to kiss her neck, put your hand between her thighs, and make her come on your fingers.",
"She goes quiet and looks down at your hand.",
"\"You cannot say that and expect me to answer normally.\"",
"Her thighs press together.",
"She takes a breath before adding, much quieter, \"The part about your fingers... yes.\""
]
},
"first_massage_start": {
"text": [
"Elena turns her back to you, then hesitates before letting her shoulders drop.",
"\"If something hurts, I tell you?\"",
"You tell her to.",
"Your thumbs find the tight muscle beside her neck. She draws in a breath, then lets it out slowly.",
"You work lower, without hurrying for the sorest spot.",
"After a few seconds, Elena stops holding herself so rigid.",
"\"Okay. You can keep going.\""
]
},
"first_massage_orgasm": {
"text": [
"The massage has gone quiet by the time Elena's breathing starts to break.",
"She catches your arm and holds on.",
"\"Do not change what you are doing.\"",
"You do not.",
"Her legs tense, then shake as the next breath turns into a sound she cannot hide.",
"Elena comes hard, body tightening under your touch before it slowly gives out.",
"When she can move again, she covers her face for a second.",
"\"I did not think that was going to happen.\""
]
},
"first_meal": {
"cookingVariants": {
"threshold": 45,
"low": [
"Elena takes the first bite, chews, and looks down at the plate.",
"She looks at the plate, then back at you.",
"\"It needs salt. Not much.\"",
"You ask if that means it is bad.",
"\"No. It means I am telling you before I finish it anyway.\"",
"She takes another bite, then reaches for more.",
"\"You made dinner. That already beats another night of crackers.\""
],
"high": [
"Elena takes the first bite, then stops halfway through the second.",
"\"You actually paid attention when you made this.\"",
"You ask what gave it away.",
"\"The vegetables are not all cooked into the same thing.\"",
"She laughs when she sees your face.",
"\"That was a compliment. I am just bad at delivering them quickly.\"",
"She keeps eating and asks what you used, when you added it, and whether you will make it again."
]
}
},
"first_kiss": {
"text": [
"Elena notices you leaning in and stops talking mid-sentence.",
"For a second she looks as if she might explain why the timing is strange.",
"Then she tips her face up and kisses you.",
"Her mouth is soft and careful at first. One hand rests on your chest, feeling the distance before she closes it.",
"When you kiss her again, she follows more easily.",
"Her fingers catch in your shirt as her lips part under yours.",
"When you pull back, she stays close.",
"\"Again. I was thinking too much the first time.\""
]
},
"first_handjob": {
"text": [
"Elena looks down at your cock, then back up at you with a flush already in her cheeks.",
"\"Tell me if I do something wrong.\"",
"Her hand closes around you. The first stroke is light, testing how you react.",
"When your cock twitches in her palm, she tries again with a firmer grip.",
"She watches your face instead of pretending she knows exactly what she is doing.",
"Her thumb moves over the head of your cock, and your breath gives her the answer.",
"\"Like that?\"",
"She keeps stroking you, slower now, more certain each time your hips answer her hand."
]
},
"first_blowjob": {
"text": [
"Elena lowers herself in front of you and closes one hand around your cock.",
"She looks at the head for a second, then wets her lips.",
"\"Tell me if I use my teeth.\"",
"Her tongue touches the tip before she takes the first few inches into her mouth.",
"She stops to breathe, still stroking the part she cannot take.",
"The second attempt is smoother. Her tongue stays under your cock while her hand works the base.",
"When she pulls back, she wipes her mouth with the back of her hand.",
"\"Was that all right?\"",
"You tell her it was. Elena nods and takes a few breaths before lowering her mouth again."
]
},
"first_cunnilingus": {
"text": [
"Elena is already wet by the time your mouth reaches her pussy.",
"The first slow lick along her slit makes her suck in a breath.",
"You find her clit and keep your tongue there.",
"Her fingers slide into your hair. At first they only rest there.",
"Then your tongue circles her clit again and her grip tightens.",
"\"There. Please do not move.\"",
"You keep licking until her hips start moving against your mouth."
]
},
"first_facesitting": {
"text": [
"Elena hesitates when she climbs over your face.",
"Her thighs settle on either side of your head, but she keeps some of her weight off you at first.",
"\"Tell me if I am too heavy.\"",
"You pull her closer and lick her pussy.",
"The first touch of your tongue makes her hips drop before she can stop them.",
"She grips your shoulder and tries to hold herself still.",
"You lick her clit again. This time she lets her body move with your mouth.",
"\"Oh. Okay... do that again.\""
]
},
"first_beg_facesit_success": {
"text": [
"When you ask Elena to sit on your face, she looks at you as if she is waiting for the joke.",
"You ask again, plainly, and she sees that there is not one.",
"\"You really want that.\"",
"You do.",
"Elena moves over you slowly and lowers herself until her wet pussy rests against your mouth.",
"The first lick makes her hand clutch at your shoulder.",
"Her thighs close a little around your head as she tries to hold still.",
"\"I did not know I would like this so much.\""
]
},
"first_69": {
"text": [
"The first sixty-nine takes a few awkward seconds to line up.",
"Elena laughs once when your knee bumps hers, then settles over you with her pussy close to your mouth.",
"Her fingers close around your cock while you lick her clit.",
"The first stroke of her hand makes you tense. The first sweep of your tongue makes her hips dip.",
"After that, neither of you keeps the same speed for very long.",
"Elena takes your cock into her mouth between breaths, then pulls back when your tongue gets her clit again.",
"\"Fuck. I cannot do both things properly.\"",
"You keep going anyway, bodies shifting together until her hand finds your cock again."
]
},
"first_rub_pussy_fabric_public": {
"text": [
"Your hand settles over Elena's pussy through her clothes.",
"She catches your wrist right away. For a second, you think that is the end of it.",
"Then her fingers loosen.",
"\"Slow. I am already trying not to look nervous.\"",
"You rub over the fabric, finding her clit by the way her thighs press together.",
"Elena keeps looking forward, but her breath changes when you move your thumb in a small circle.",
"\"Do not stop suddenly. That would be worse.\""
]
},
"first_fingering": {
"text": [
"When your first finger slides into Elena, she grabs your forearm and goes still.",
"\"Wait.\"",
"You stop without pulling out.",
"Her pussy tightens around your finger. Then her hips press forward and take it deeper.",
"\"No. Keep it in.\"",
"You curl your finger inside her. The next movement pulls a moan out of her before she can lower her voice.",
"When you add a second finger, Elena spreads her legs farther and pushes down onto your hand.",
"You start to pull back. She catches your wrist and brings your fingers inside her again.",
"\"There. Do that again.\"",
"You finger her harder, and this time she fucks herself back onto your fingers."
]
},
"first_analingus": {
"text": [
"When your mouth reaches Elena's ass, she tenses hard enough for you to feel it.",
"You kiss one cheek first, then run your tongue around her asshole.",
"Her hand tightens.",
"\"I have not done this before.\"",
"You keep your tongue slow, circling the tight little opening until her hips stop pulling away.",
"The next lick makes her shiver.",
"Elena breathes out through her teeth.",
"\"Okay. Keep going. Just do not rush me.\""
]
},
"first_ask_sex_success": {
"text": [
"You ask Elena plainly if she wants to have sex.",
"She looks down at your hands, then back at your face.",
"The answer takes her a second.",
"\"Yes. I want to.\"",
"Her voice is quiet, but she does not take it back.",
"\"I just need you to be patient with me at the start.\"",
"She steps closer and puts both hands against your chest."
]
},
"first_beg_sex_success": {
"text": [
"You tell Elena how badly you want to fuck her.",
"The words make her look away, then back at you.",
"\"You do not have to make it sound so desperate.\"",
"There is no bite in it. Her face is flushed and she is already standing closer than before.",
"She touches your arm with unsteady fingers.",
"\"But yes. I have been thinking about it too.\""
]
},
"first_demand_sex_success": {
"text": [
"You tell Elena you want to fuck her.",
"She goes still, taking in the way you said it.",
"Her eyes drop to your cock, then lift again.",
"\"Okay.\"",
"She swallows and moves in close enough for her body to touch yours.",
"\"Do not say it like that and then hesitate.\""
]
},
"first_vaginal_intro": {
"text": [
"The first time your cock starts to enter Elena's pussy, both of you slow down.",
"She takes one careful breath.",
"\"Slow at first.\"",
"The head of your cock opens her wet pussy. Her body tightens, then gives a little more when you wait.",
"The next inch slides into her cunt.",
"Elena's mouth opens on a quiet sound as she takes you deeper.",
"\"Okay. Keep going.\""
]
},
"first_anal_intro": {
"text": [
"The first time your cock starts to enter Elena's ass, she keeps herself very still.",
"\"Do not rush this.\"",
"You push in slowly. The head of your cock stretches her tight little asshole until she has to stop breathing for a second.",
"You wait there.",
"When she pushes back by the smallest amount, you take another inch.",
"\"That is enough. No, wait... a little more.\""
]
},
"first_position_missionary": {
"text": [
"On her back, Elena keeps one knee drawn close while your cock moves inside her.",
"She watches your face more than she watches what you are doing.",
"When you slow down, her fingers tighten around your wrist.",
"\"You do not have to stop every time I make a sound.\"",
"You give her another careful thrust.",
"Her pussy clenches around your cock, and she closes her eyes.",
"\"That one was good.\""
]
},
"first_position_cowgirl": {
"text": [
"Elena swings one leg over you and lowers herself onto your cock.",
"The first few inches make her stop with both hands braced on you.",
"\"I do not know how fast I am supposed to go.\"",
"You hold her hips while she takes the rest of you.",
"She tries a few careful movements, watching your face for some sign that she has it right.",
"When you lift into her, Elena grabs your shoulder and her pussy clenches around your cock.",
"\"That. You do more of that.\"",
"She keeps moving, but lets your hands set most of the speed."
]
},
"first_position_reverse_cowgirl": {
"text": [
"Elena turns away from you and lowers herself onto your cock with both hands behind her for balance.",
"Her back tightens when you first fill her.",
"\"Not looking at you helps. I still do not know what to do with my hips.\"",
"She tries one careful movement, then stops.",
"Your hands settle on her hips and guide her back along your cock.",
"Elena follows the next movement more easily, leaning against you while you help her ride.",
"\"Yes. Help me with it.\""
]
},
"first_position_doggy": {
"text": [
"Elena bends forward and looks back while you move behind her.",
"You hold her hip and push your cock into her wet pussy.",
"The first deep thrust knocks a sound out of her. She drops her head for a second, then pushes back before you can move again.",
"\"Again.\"",
"You fuck her from behind, harder this time. Her ass meets your hips and her cunt tightens around you.",
"After that she keeps her face turned away. Every time you pull back, she presses into the next thrust.",
"When you slow down, Elena reaches behind her, finds your wrist, and pulls your hand tighter against her hip.",
"\"Do not. Keep going like that.\""
]
},
"first_position_wall": {
"text": [
"You lift Elena against the wall. Her arms close around your shoulders before her feet leave the floor.",
"\"Wait. Keep me steady.\"",
"You hold her close and guide your cock into her pussy.",
"She grips you harder when the first thrust shifts her against the wall.",
"\"Slow. I cannot relax if I think you are going to drop me.\"",
"You keep the strokes short until her legs settle around you.",
"She begins to move with you, but her arms never loosen."
]
},
"first_anal_position_missionary": {
"text": [
"On her back, Elena keeps both hands around yours while your cock is inside her ass.",
"She looks tense until you stop moving and let her breathe.",
"\"I can do this. I just need a minute.\"",
"When she nods, you push a little deeper.",
"Her tight asshole squeezes around your cock, and a rough sound leaves her before she can hide it.",
"Elena grips your fingers harder.",
"\"Okay. That felt different.\""
]
},
"first_anal_position_cowgirl": {
"text": [
"Elena lowers herself onto your cock facing you, moving much more slowly than she did with her pussy.",
"Her hands stay on your shoulders while her ass opens around the head.",
"She stops, breathes, then takes another small amount.",
"\"I need you to stay still for a second.\"",
"You do. When she is ready, she eases down farther.",
"Her face changes when your cock is properly inside her ass.",
"\"I did not expect that to feel good already.\""
]
},
"first_anal_position_reverse_cowgirl": {
"text": [
"Elena turns away and uses your thighs for balance as she lowers herself onto your cock.",
"The first stretch makes her freeze.",
"You keep your hands on her hips without pulling her down.",
"After a few breaths, she moves again.",
"Her ass takes you inch by inch until she is sitting on your cock.",
"Elena leans back against you, shaking a little.",
"\"Do not move fast. I am getting used to it.\""
]
},
"first_anal_position_doggy": {
"text": [
"Elena leans forward and lets you hold her hip while you push into her ass from behind.",
"The head of your cock stretches her asshole. She reaches back and catches your wrist.",
"\"Stay there.\"",
"You wait with the tip inside her until her grip loosens.",
"When you push deeper, Elena keeps her face down and breathes through it.",
"Your first short thrust makes her ass clench around you. The next one makes her push back by a fraction.",
"\"This is better from here. Just do not go faster yet.\""
]
},
"first_anal_position_wall": {
"text": [
"You brace Elena against the wall. She locks both arms around your shoulders before your cock reaches her ass.",
"\"Wait. Let me get steady first.\"",
"You adjust your grip and hold her close.",
"The head of your cock presses into her asshole. Elena tenses around it.",
"\"Slow. I cannot handle the stretch and the wall at the same time.\"",
"You take the first inch and stop until she breathes again.",
"When you begin moving, the strokes stay short and her grip never loosens."
]
},
"first_sex": {
"text": [
"The first time Elena has sex with you, she is quieter than she expected to be.",
"Your cock keeps drawing small sounds out of her as her pussy tightens around you.",
"She holds on to you instead of explaining any of it.",
"\"Do not make me talk yet. Just stay here.\""
]
},
"first_anal": {
"text": [
"Elena's first anal sex is slow enough that she feels every change.",
"Your cock fills her ass by small degrees while she keeps one hand on yours.",
"When she finally pushes back, the sound she makes is half surprise and half relief.",
"\"Okay. I can take more than I thought.\""
]
},
"first_demand_anal_success": {
"text": [
"You tell Elena you want her ass.",
"She goes quiet and looks down at your cock.",
"\"You really want that.\"",
"You do.",
"She takes a breath, then turns enough to show you she is not leaving.",
"\"Then take your time with me.\""
]
},
"first_undress_top_off": {
"text": [
"Elena looks down at the buttons of her blouse before she touches them.",
"\"I know this is only a shirt.\"",
"She undoes it anyway, one button at a time.",
"When the fabric comes off, she folds her arms loosely over her chest.",
"\"You can look. I just do not know what to do with my hands.\""
]
},
"first_undress_bra_off": {
"text": [
"Elena turns partly away while her bra comes undone.",
"Her hands stay at her sides after it slips off, as if she is not sure what to do with them.",
"Her tits are bare in front of you, and she watches your face instead of hiding.",
"\"I am trying not to regret doing that.\"",
"You step closer without rushing her."
]
},
"first_undress_bottom_off": {
"text": [
"Elena unfastens her trousers, then pauses with her fingers at the waistband.",
"She looks at you once, gets a small nod, and pushes them down.",
"When she steps out of them, her bare legs brush yours.",
"\"That was harder than it should have been.\"",
"She says it with a short laugh, then stays close."
]
},
"first_undress_panties_off": {
"text": [
"Elena hooks her thumbs into the sides of her panties and lowers them slowly.",
"She does not look at you until the fabric is on the floor.",
"Then she does, bare pussy exposed between her thighs.",
"\"Please do not say the first thing that comes into your head.\"",
"She takes a breath and lets you see her."
]
},
"first_massage_undress_top_off": {
"text": [
"During the massage, Elena reaches for the buttons of her blouse without looking back.",
"\"This will be easier without it.\"",
"She pulls the top off and lets your hands return to her bare shoulders.",
"The first press into her skin makes her exhale.",
"\"Yes. That is better.\""
]
},
"first_massage_undress_bra_off": {
"text": [
"Elena pauses before taking off her bra during the massage.",
"Her hands hover at the clasp, then she undoes it herself.",
"Her tits fall free as she keeps facing away from you.",
"\"Stay on my shoulders for now.\"",
"You do, and the tightness starts to leave her back."
]
},
"first_massage_undress_bottom_off": {
"text": [
"Elena shifts under your hands, then starts working her trousers down.",
"\"My hips are tight too. That is the only reason.\"",
"The excuse makes her laugh before she can stop it.",
"Once the fabric is gone, your palms return to the outside of her thighs.",
"She lets them stay there."
]
},
"first_massage_undress_panties_off": {
"text": [
"Elena goes quiet when she decides to take off her panties during the massage.",
"She eases them down, then keeps her legs close together for a moment.",
"Your hands stay on her hips and thighs instead of reaching straight between them.",
"Her body loosens a little at that.",
"\"Okay. You can keep going.\""
]
},
"first_slide_inside_panties_public": {
"text": [
"Your hand slips under Elena's panties, and she catches your wrist before your fingers reach her pussy.",
"\"Slow. I cannot think if you surprise me like that.\"",
"You slide two fingers along her wet slit.",
"Her thighs close around your hand, then open just enough for your thumb to reach her clit.",
"Elena keeps her face turned away and her voice low.",
"\"If we were alone, I would let you put them inside. Here... just keep rubbing.\""
]
},
"first_deep_kiss": {
"text": [
"The first time the kiss gets deeper, Elena makes a small sound against your mouth and immediately tries to hide it.",
"Your tongue brushes hers. Her hand closes at the back of your neck.",
"She kisses you again before you can pull away, slower this time.",
"Her lips part, and she lets your tongue move deeper into her mouth.",
"When she finally breaks the kiss, her face is flushed.",
"\"I was not ready for that to be so good.\""
]
},
"first_invite_photoshoot": {
"text": [
"Elena notices the camera before you bring up the photoshoot.",
"\"You want me to pose for you?\"",
"You say you do.",
"She thinks about it, then smooths the front of her blouse.",
"\"Okay. Tell me where to stand. I will need instructions at the start.\"",
"She faces the camera with a nervous little smile.",
"\"Do not keep the bad ones just to tease me later.\""
]
},
"first_photo_hand_between_legs": {
"text": [
"You lower the camera and step close enough to put your hand between Elena's legs.",
"She looks at the camera, then down at your hand.",
"\"Are we done taking pictures?\"",
"Your thumb rubs her clit. Elena catches your shoulder, but her knees open wider.",
"You push one finger into her wet pussy.",
"\"Wait...\"",
"You stop. She presses down onto your finger and shakes her head.",
"\"No. Keep going.\"",
"You add a second finger and curl them inside her. Elena's hips start moving against your hand.",
"When you ease back, she catches your wrist and pulls your fingers into her again.",
"\"Do not take them out yet.\""
]
},
"first_invite_room": {
"text": [
"The first time Elena comes to your room, she steps inside and stays close to the door.",
"Her hands stay together in front of her while she looks around.",
"The silence lasts a few seconds.",
"Then she walks farther in and stands beside you.",
"\"I am a little nervous.\"",
"She looks at you, then adds with a small smile.",
"\"But I came in, so I am trying.\""
]
},
"first_private_movie": {
"text": [
"The movie runs for a while before Elena starts paying less attention to it.",
"She laughs at one line, then realises your shoulder is touching hers.",
"Instead of moving away, she lets the contact stay.",
"\"Are you actually watching this?\"",
"You ask her the same thing.",
"Elena looks at the screen, then down at your hand beside hers.",
"\"Not as much as I was.\""
]
},
"first_invite_gallery": {
"text": [
"At the gallery, Elena stops in front of a piece that looks simple from a distance.",
"She leans in, then steps back again.",
"\"I thought I knew what it was doing. I do not.\"",
"You stand with her instead of answering for her.",
"After a minute, she points to one small part of it.",
"\"That bit is why I stayed.\"",
"She looks pleased that you waited long enough to see it."
]
},
"first_invite_workout": {
"text": [
"Elena arrives, looks over the equipment, and lets out a small breath.",
"\"Can we not make this competitive?\"",
"You start with something simple.",
"She copies the movement, gets it wrong once, and asks you to show her again.",
"By the end she is warm, breathing harder, and less guarded about it.",
"\"I would do that again.\""
]
},
"first_public_handjob": {
"text": [
"The first time Elena puts her hand inside your pants in public, her fingers are shaking.",
"\"I cannot believe I am doing this.\"",
"Her palm closes around your cock under your clothes.",
"The first stroke is short and cautious. When you twitch against her hand, she takes a steadier grip.",
"She keeps her face turned away while her fingers move over your shaft.",
"\"Do not make a sound. I am already trying not to.\""
]
},
"first_footjob": {
"text": [
"Elena's foot presses against your cock, and she watches your reaction before she moves again.",
"\"This is a very specific thing to ask for.\"",
"You tell her you like it.",
"She drags her foot slowly along your shaft, testing how much pressure makes you tense.",
"When your breath catches, her cheeks turn red.",
"\"Okay. That answer was useful.\"",
"She keeps her foot moving, a little slower now that she knows what it does to you."
]
},
"first_titfuck": {
"text": [
"Elena looks down when you guide your cock between her tits.",
"She brings her breasts together around you with both hands.",
"The first slide makes her inhale.",
"\"I did not know it would feel like that for me too.\"",
"You move between her soft tits while she holds them tight around your cock.",
"Elena watches the way your face changes, then squeezes a little harder.",
"\"Keep going. I want to see.\""
]
},
"first_climax_body": {
"text": [
"The first time you cum on Elena's body, your cock jerks and hot cum lands across her skin.",
"She looks down at the mess, then back at you.",
"Her fingers touch a small streak in the mess.",
"\"You were trying very hard not to lose it, were not you?\"",
"She does not wipe it away right away."
]
},
"first_climax_back": {
"text": [
"The first hot line of cum lands across Elena's back, and she holds still through the next pulse.",
"Your cock keeps twitching as you spill over her skin.",
"Elena reaches back with one hand, then stops before she smears it.",
"\"I can feel that.\"",
"She turns her head enough to look at you.",
"\"Do not leave me like this.\""
]
},
"first_climax_boobs": {
"text": [
"Your cock jerks over Elena's bare tits, leaving warm streaks of cum across her chest.",
"She flinches at the first pulse, then stays where she is.",
"When you are done, she looks down and touches one fingertip to the mess.",
"Her face is red, but she does not cover herself.",
"\"I did not think I would be okay with that.\"",
"She looks back at you.",
"\"I was.\""
]
},
"first_climax_face": {
"text": [
"The first time you cum on Elena's face, she holds still with her eyes half closed.",
"Your cock pulses over her cheek and lips.",
"For a second she only breathes through it.",
"Then she wipes a little cum from beside her mouth with her thumb.",
"\"That was a lot.\"",
"She says it quietly, but she stays close enough that you know she is not pulling away."
]
},
"first_climax_mouth": {
"text": [
"The first time you cum in Elena's mouth, she keeps her lips around your cock when your warning breaks out.",
"Your cock pulses over her tongue.",
"Her hand stays firm at the base while she takes each spurt in her mouth.",
"When you finally pull back, she keeps her eyes down for a second.",
"Then she looks up with wet lips and a shaky breath.",
"\"I knew it would be intense. I did not know it would feel like that.\""
]
},
"first_climax_public_hand": {
"text": [
"The first time you cum in Elena's hand in public, she keeps her fingers wrapped around your cock until the last twitch.",
"The mess stays hidden in her palm between your bodies.",
"She takes one quick breath and looks away from you.",
"\"I need a minute.\"",
"Her hand is still warm around you.",
"\"And you need to stop looking at me like that.\""
]
},
"first_climax_inside_pussy": {
"text": [
"When you warn Elena, she is already clenching around your cock.",
"She looks at you, then pulls you closer.",
"\"Inside.\"",
"Your cock pulses deep in her pussy, filling her with hot cum.",
"Elena gasps and holds you there while her cunt squeezes around every spurt.",
"When the last twitch fades, she keeps her forehead against yours.",
"\"I can feel it.\""
]
},
"first_climax_inside_ass": {
"text": [
"When you warn Elena, your cock is already buried in her ass.",
"She tightens around you and gives a small nod.",
"Your cock jerks, filling her tight asshole with hot cum.",
"The first pulse makes her gasp. The next makes her push back against you.",
"When you are done, she stays very still for a second, breathing hard.",
"\"Okay. I need to lie down for a minute.\""
]
}
}
}
END_FIRST_TIME_DATA %//% REACTION_DATA
{
"girlId": "g1",
"girl": "Zoe Bellamy",
"readyVariable": "dialogue002ready",
"notes": [],
"responses": [
{
"action": "talk_computers",
"success": [
"Zoe lifts one side of her headphones and turns the laptop so both of you can see it.",
"Her fingers pause over the keyboard while she asks which test you would run first."
],
"failure": [
"Zoe turns the screen back toward herself and points to the step you skipped.",
"She shakes her head once and returns her hands to the keyboard."
]
},
{
"action": "talk_music",
"success": [
"Zoe lowers the volume and listens to the section again before answering.",
"She taps one finger in time with the part you mentioned."
],
"failure": [
"Zoe listens to the section, then shakes her head.",
"She puts the headphone back over her ear and leaves the subject there."
]
}
]
}
END_REACTION_DATA %//% REACTION_DATA
{
"girlId": "g2",
"girl": "Iris Moon",
"readyVariable": "dialogue003ready",
"notes": [],
"responses": [
{
"action": "talk_art",
"success": [
"Iris smiles and looks back at the part of the work you mentioned.",
"She traces the shape in the air with one finger while she answers."
],
"failure": [
"Iris gives you a polite smile, then looks back at the work.",
"She tilts her head and asks which part you mean."
]
},
{
"action": "look_eyes",
"success": [
"Iris holds your eyes for another second, although her cheeks turn pink.",
"Her face flushes, but she does not immediately look away."
],
"failure": [
"Iris looks down and starts picking at a spot of paint on her thumb.",
"She shifts her attention to something beside you rather than meeting the stare."
]
}
]
}
END_REACTION_DATA %//% REACTION_DATA
{
"girlId": "g3",
"girl": "Tessa Grant",
"readyVariable": "dialogue004ready",
"notes": [],
"responses": [
{
"action": "talk_finance",
"success": [
"Tessa checks the figure you mentioned before answering.",
"She puts her phone down and asks where the estimate came from."
],
"failure": [
"Tessa shakes her head and points to the cost you left out.",
"She checks the total again, then turns the screen toward you."
]
},
{
"action": "gentle_command",
"success": [
"Tessa pauses, then follows the instruction without taking her eyes off you.",
"She follows the instruction, although her shoulders stay tense."
],
"failure": [
"Tessa does not move and waits for you to ask properly.",
"She folds her arms and tells you not to use that tone with her."
]
}
]
}
END_REACTION_DATA %//% REACTION_DATA
{
"girlId": "g4",
"girl": "Leah Cross",
"readyVariable": "dialogue005ready",
"notes": [],
"responses": [
{
"action": "flirt_soft",
"success": [
"The corner of Leah's mouth lifts before she looks away.",
"Leah gives you a brief smile and stays facing you.",
"She glances down, then meets your eyes again."
],
"failure": [
"Leah looks at you without smiling.",
"She shakes her head once and changes the subject.",
"Her eyebrows lift, but she gives the line no answer."
]
},
{
"action": "flirt_bold",
"success": [
"Leah opens her mouth to answer, then laughs instead.",
"She holds your eyes for a second, and a little colour reaches her cheeks.",
"Leah looks away before the grin fully reaches her face."
],
"failure": [
"Leah's expression goes flat.",
"She takes a step back and shakes her head.",
"Leah folds her arms and waits for you to stop."
]
},
{
"action": "compliment_style",
"success": [
"Leah glances down at the detail you mentioned, then back at you.",
"She smooths one hand over her sleeve and gives you a small nod.",
"Leah accepts the compliment with a quick smile."
],
"failure": [
"Leah gives you a doubtful look.",
"She glances at her clothes, then asks whether you meant that.",
"Her expression stays flat, and she changes the subject."
]
},
{
"action": "admire_outfit",
"success": [
"Leah glances down at her outfit, then meets your eyes again.",
"She notices you looking and leaves you another second before speaking.",
"Leah catches the look and waits for you to say what you like."
],
"failure": [
"Leah catches the look and makes it clear you are being too obvious.",
"She turns slightly and tells you to stop staring.",
"Leah brings your attention back to her face."
]
},
{
"action": "gaze_chest",
"success": [
"Leah catches your eyes dipping to her chest and raises one eyebrow.",
"She notices where you looked, then waits for you to meet her eyes again.",
"Leah looks down at her chest, then back at you."
],
"failure": [
"Leah catches the stare at her chest and shuts it down fast.",
"Leah pulls your attention back to her face with a hard look.",
"Leah does not let your eyes stay there."
]
},
{
"action": "gaze_ass",
"success": [
"Leah catches the look behind her and glances back at you.",
"She turns her head, confirms where you were looking, and almost smiles.",
"Leah gives you a second, then turns around and makes you meet her eyes."
],
"failure": [
"Leah catches you staring at her ass and cuts it off with one look.",
"Leah turns enough to make the stare obvious, not welcome.",
"Leah does not let you get comfortable looking there."
]
},
{
"action": "gaze_legs",
"success": [
"Leah notices your eyes on her legs and waits a second before speaking.",
"She shifts her stance and looks down to see what caught your attention.",
"Leah catches the glance and meets your eyes again."
],
"failure": [
"Leah catches your eyes on her legs and tells you to look up.",
"Leah shifts her stance, cutting the look short.",
"Leah makes you bring your eyes back up."
]
},
{
"action": "look_eyes",
"success": [
"Leah keeps looking at you to see who turns away first.",
"Leah does not blink away from the eye contact.",
"Leah holds your eyes for another second, then exhales through her nose."
],
"failure": [
"Leah breaks the stare with a look that says you are trying too hard.",
"She looks aside and tells you to stop staring.",
"Leah turns her attention to something behind you."
]
},
{
"action": "touch_hand",
"success": [
"Leah leaves her hand in yours and watches your face.",
"Her fingers stay tense at first, then loosen around yours.",
"Leah turns her palm slightly and lets you hold it properly."
],
"failure": [
"Leah slips her hand away before your fingers can settle.",
"She moves her hand out of reach and shakes her head.",
"Leah pulls her hand back before your fingers close around it."
]
},
{
"action": "touch_arm",
"success": [
"Leah leaves your hand on her arm for a second.",
"Leah notices your hand but does not move away.",
"Her arm stays relaxed under your hand."
],
"failure": [
"Leah shifts her arm away before the touch can settle.",
"Leah gives your hand one warning look and moves out of reach.",
"She removes your hand from her arm and steps back."
]
},
{
"action": "tease_words",
"success": [
"Leah takes a second to answer, and the corner of her mouth lifts.",
"She tries to keep a straight face and fails.",
"Leah rolls her eyes, then laughs despite herself."
],
"failure": [
"Leah looks at you without reacting to the tease.",
"She shakes her head and gives you no answer.",
"Leah tells you to stop before you continue."
]
},
{
"action": "whisper_dirty",
"success": [
"Leah goes still for a second when the dirty words reach her ear.",
"She stays close enough to hear you, then looks directly at your mouth.",
"Leah presses her lips together and takes a slow breath before answering."
],
"failure": [
"Leah leans away before the whisper can settle in her ear.",
"Leah gives you a hard look and tells you not to do that again.",
"Leah does not let you stay close enough for another whisper."
]
}
]
}
END_REACTION_DATA %//% REACTION_DATA
{
"girlId": "g5",
"girl": "Sofia Reed",
"readyVariable": "dialogue006ready",
"notes": [],
"responses": []
}
END_REACTION_DATA %//% REACTION_DATA
{
"girlId": "g6",
"girl": "Valerie King",
"readyVariable": "dialogue007ready",
"notes": [],
"responses": []
}
END_REACTION_DATA %//% REACTION_DATA
{
"girlId": "g7",
"girl": "Hazel Mercer",
"readyVariable": "dialogue008ready",
"notes": [],
"responses": []
}
END_REACTION_DATA %/This generic bank stores body language and reactions only. It should not contain quoted dialogue.
/% REACTION_BANK
{
"admire_outfit_failure": [
"She notices the open look and makes it clear she is not interested.",
"{name} does not let the outfit compliment become a longer moment.",
"Her face goes flat before the attention can turn flattering.",
"She shifts her body away from the way you are looking at her.",
"The attempt reads too obvious, and she shuts it down."
],
"admire_outfit_success": [
"Her eyes drop to her outfit, then back to you, checking where your gaze lingers.",
"She notices the look and decides whether it feels flattering or too obvious.",
"She leans into the contact by a small, honest amount."
],
"against_wall_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"{name} stops the act before it can begin.",
"She plants both hands against your chest and keeps her hips away from the wall.",
"She refuses the wall position before it becomes sex.",
"She moves out of position before you can continue."
],
"against_wall_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"Her wet cunt holds you tight.",
"Her breath breaks each time you push deeper.",
"{name} braces against the wall as the position turns urgent."
],
"anal_anal_position_switch_failure": [
"Her ass moves out of reach, and her hand stops you at the hip.",
"She stiffens hard and keeps you away from her ass.",
"{name} pulls back and makes the refusal clear.",
"Her posture closes and stays closed.",
"She stops you before it can continue."
],
"anal_anal_position_switch_success": [
"Her asshole tightens hard when the new position stretches her differently.",
"She braces herself while your cock stays buried in her ass.",
"Her breath catches as the movement changes around the same deep stretch.",
"Her fingers dig in while her ass adjusts around you.",
"The switch makes her clench before she settles into it."
],
"anal_cowgirl_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"{name} stops the act before it can begin.",
"She lifts off before the head of your cock can enter her ass.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"anal_cowgirl_pleasure_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"She stiffens hard and keeps you away from her ass.",
"Her ass tightens too hard from above and she stops riding.",
"She pulls forward, leaving your hand with nothing to hold.",
"Her hips stop moving as the stretch becomes too much.",
"Her tight hole clamps down and she refuses the next drop."
],
"anal_cowgirl_pleasure_success": [
"She straddles you and lowers her tight asshole onto your cock in cowgirl.",
"She grinds her asshole down around your cock in deep cowgirl anal.",
"Her body jolts with each thrust into her ass.",
"She sinks down repeatedly, stretching her ass around your thick cock.",
"She bounces steadily, taking your cock balls-deep in her ass.",
"Her fingers dig into the surface beneath her.",
"She gasps hard when you push deeper into her ass.",
"Her ass cheeks jiggle while she rides you anally in cowgirl.",
"She leans back and works her tight hole up and down your shaft."
],
"anal_cowgirl_success": [
"Her fingers clutch at you while her asshole takes more.",
"Her ass grips your cock hard.",
"{name} takes her time above you as her ass opens around you.",
"{name} breathes through the stretch and lets you stay inside.",
"She pushes back by a small amount once the stretch eases."
],
"anal_doggy_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"{name} stops the act before it can begin.",
"She drops one hip and moves her asshole out of line with your cock.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"anal_doggy_pleasure_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her ass moves out of reach, and her hand stops you at the hip.",
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"She stiffens hard and keeps you away from her ass.",
"She pulls forward, leaving your hand with nothing to hold.",
"Her back tightens, and she refuses the anal push at once.",
"Her body tenses so hard the motion breaks."
],
"anal_doggy_pleasure_success": [
"Her ass ripples with every hard thrust while you fuck her in doggy.",
"Her asshole stretches visibly as you fuck her hard from behind.",
"Her body rocks forward each time you bury your cock in her tight ass.",
"Her back arches as your cock stretches her open.",
"The position gives perfect leverage to pound her ass relentlessly.",
"Doggy style anal turns rough and deep, her ass taking every inch."
],
"anal_doggy_success": [
"Her fingers clutch at you while her asshole takes more.",
"{name} braces hard as her asshole stretches around you.",
"Her ass grips your cock hard.",
"{name} breathes through the stretch and lets you stay inside.",
"She pushes back by a small amount once the stretch eases."
],
"anal_missionary_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"{name} stops the act before it can begin.",
"Her knees close and keep your cock away from her asshole.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"anal_missionary_pleasure_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"She stiffens hard and keeps you away from her ass.",
"She pulls forward, leaving your hand with nothing to hold.",
"She gasps uncomfortably and blocks the next thrust.",
"She pushes against your chest before the stretch becomes too much.",
"Her back tightens, and she refuses the anal push at once.",
"Her body asks for a slower, gentler reset."
],
"anal_missionary_pleasure_success": [
"Her asshole stretches around your cock with every deep missionary thrust.",
"Her legs spread wide while your cock pushes deep into her asshole in missionary.",
"Her ass takes every inch as you thrust steadily in the missionary anal position.",
"The intimate position lets you drive steadily into her clenching ass.",
"Her fingers dig into the surface beneath her.",
"Deep missionary anal stretches her hole wide with every powerful push."
],
"anal_missionary_success": [
"Her fingers clutch at you while her asshole takes more.",
"Her ass grips your cock hard.",
"{name} holds your gaze while her ass takes you inch by inch.",
"{name} breathes through the stretch and lets you stay inside.",
"She pushes back by a small amount once the stretch eases."
],
"anal_pleasure_failure": [
"{name} breaks the rhythm before your cock can push into her asshole again.",
"{name} stops the anal before your cock can keep moving in her ass.",
"Her ass tightens and her body pulls away from the next thrust.",
"Her hips move away, refusing any more pressure in her ass.",
"{name} pulls back and makes the refusal clear.",
"She stops you before it can continue.",
"She braces against you and ends the anal sex immediately."
],
"anal_pleasure_success": [
"{name} breathes through the stretch as her asshole tightens around you.",
"Her body responds to the exact kind of contact.",
"She reacts to the contact instead of the idea of it.",
"The pleasure shows in a small, physical answer."
],
"anal_reverse_cowgirl_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"{name} stops the act before it can begin.",
"She rises off your lap before your cock can enter her ass.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"anal_reverse_cowgirl_pleasure_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her ass moves out of reach, and her hand stops you at the hip.",
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"She stiffens hard and keeps you away from her ass.",
"Her ass tightens so hard the next movement stops.",
"She pulls off slowly, breathing tense and sharp.",
"She refuses to sink down again."
],
"anal_reverse_cowgirl_pleasure_success": [
"She turns around and sinks her asshole down onto your cock in reverse.",
"The reverse position gives a perfect view of her asshole taking cock.",
"Her asshole tightens around your cock.",
"Thick juices drip while she fucks her ass backwards on your cock.",
"Her ass bounces heavily while she rides you in reverse cowgirl anal.",
"She leans forward and works her ass up and down your shaft.",
"Her ass moves aggressively as she rides in reverse cowgirl.",
"The reverse cowgirl makes her ass look incredible while stretching around you."
],
"anal_reverse_cowgirl_success": [
"Her fingers clutch at you while her asshole takes more.",
"{name}'s back arches as her asshole tightens around you.",
"Her ass grips your cock hard.",
"{name} breathes through the stretch and lets you stay inside.",
"She pushes back by a small amount once the stretch eases."
],
"anal_talk_failure": [
"{name} shuts the topic down before it can go further.",
"{name} gives a short answer and stops feeding the conversation.",
"Her body closes at the mention of anal.",
"She cuts the subject off before it becomes a negotiation.",
"The boundary comes down fast and clean.",
"She looks away and leaves the topic dead."
],
"anal_talk_success": [
"The word changes her breathing, and she keeps her eyes on you instead of looking away.",
"She shifts her weight, aware that the conversation has moved toward her ass.",
"She holds your gaze at the mention of anal, not refusing it outright.",
"Her shoulders loosen as she keeps talking.",
"{name} holds still at the mention of anal, watching whether you treat the idea carefully.",
"Her posture tightens when anal becomes the subject, but she does not shut it down.",
"{name} lets the anal talk stay in the room, guarded but listening."
],
"anal_wall_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"{name} stops the act before it can begin.",
"She twists away from the wall and covers her ass with one hand.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"anal_wall_pleasure_failure": [
"Her ass moves out of reach, and her hand stops you at the hip.",
"She braces against the wall and closes her ass hard against you.",
"Her body stiffens against the wall, refusing the next thrust.",
"She pulls forward, leaving your hand with nothing to hold.",
"She stiffens hard and keeps you away from her ass.",
"Her back tightens, and she refuses the anal push at once.",
"Her tight hole clenches shut before you can drive deeper.",
"She shuts down the wall position with her whole body."
],
"anal_wall_pleasure_success": [
"She braces on the wall while you thrust deep into her tight asshole.",
"Her body is pinned as you fuck her asshole deep and rough.",
"She stays pressed forward as your cock works deep into her ass.",
"The standing position lets you pound her ass with powerful strokes.",
"The wall supports her while you stretch her ass from behind.",
"The dominant standing anal turns rough against the wall."
],
"anal_wall_success": [
"Her fingers clutch at you while her asshole takes more.",
"Her ass grips your cock hard.",
"{name} breathes through the stretch and lets you stay inside.",
"She pushes back by a small amount once the stretch eases.",
"{name} braces against the wall as the anal angle turns intense."
],
"analingus_fingers_failure": [
"Her ass moves out of reach, and her hand stops you at the hip.",
"{name} pulls her ass away before you can continue.",
"Her hand moves back to cover herself.",
"She closes her thighs and stops the anal attention.",
"She stiffens hard and keeps you away from her ass."
],
"analingus_fingers_success": [
"Her hand grips the nearest surface while you lick her asshole.",
"{name}'s ass tenses at first, then opens a little for your tongue.",
"Her thighs twitch around your hand.",
"She shivers hard when the rimming becomes fingering, thighs tense while her body decides to accept it.",
"She bites back a sound and pushes into your touch."
],
"analingus_pleasure_failure": [
"{name} pulls her ass away before your tongue can return to her asshole.",
"She closes the angle and keeps your mouth away from her ass.",
"Her ass moves out of reach before your tongue can press in again.",
"Her hips tuck away, ending the rimming before it can continue.",
"{name} stops the analingus with a firm shift of her hips."
],
"analingus_pleasure_success": [
"{name}'s ass tenses at first, then opens a little for your tongue.",
"{name} shivers as the analingus stays focused and deliberate.",
"Her body responds to the exact kind of contact.",
"She reacts to the contact instead of the idea of it.",
"The pleasure shows in a small, physical answer."
],
"analingus_to_anal_failure": [
"She clenches her asshole and pulls away.",
"Her body rejects you instantly.",
"She twists sharply and stops you.",
"She crawls forward and breaks it.",
"Her hole stays tightly closed.",
"She refuses entry completely."
],
"analingus_to_anal_success": [
"Her asshole tightens when your cock replaces your mouth.",
"She braces herself as the wet rim meets the head of your cock.",
"Her breath goes shallow while the analingus turns into penetration.",
"Her ass clenches around the new pressure before she lets you go farther.",
"The first push makes her fingers dig in while she adjusts."
],
"analingus_to_cunnilingus_failure": [
"She keeps her ass pressed toward your face.",
"She refuses to move back to her pussy.",
"She locks her thighs and blocks the switch.",
"She demands more attention on her ass.",
"Her back tightens, and she refuses the anal push at once.",
"She ignores the change completely."
],
"analingus_to_cunnilingus_success": [
"Her body relaxes a little when your mouth returns to her pussy.",
"Her hips follow your tongue back to her clit.",
"She exhales hard when the analingus turns back into cunnilingus.",
"Her thighs open wider once your mouth finds her wet slit again.",
"The familiar pressure on her pussy pulls a quicker reaction out of her."
],
"ask_about_schedule_failure": [
"{name} gives a short answer and stops feeding the conversation.",
"She looks away before you can ask more.",
"Her posture closes, polite but clear.",
"{name} keeps the boundary firm around the invitation.",
"She does not let the offer become a negotiation.",
"The request closes before it can gain momentum.",
"She steps back from the implication in the ask.",
"Her refusal is calm, but final."
],
"ask_about_schedule_success": [
"A small smile slips through before she reins it in.",
"She keeps eye contact while she answers.",
"She gives you a few real details about when she is usually around.",
"Her shoulders loosen as she keeps talking.",
"{name} decides whether the question sounds considerate or too eager.",
"Her answer comes after a real pause, not automatic politeness.",
"She pauses, then gives you enough of an answer to work with.",
"The invitation lands more cleanly than she expected."
],
"ask_address_failure": [
"{name} gives a short answer and stops feeding the conversation.",
"She looks away before you can ask more.",
"Her posture closes, polite but clear.",
"{name} keeps the boundary firm around the invitation.",
"She does not let the offer become a negotiation.",
"The request closes before it can gain momentum.",
"She steps back from the implication in the ask.",
"Her refusal is calm, but final."
],
"ask_address_success": [
"{name} writes the address down and makes sure you can read it.",
"She gives you the address, then watches your reaction.",
"Her fingers stay on the note for a second before she lets you take it.",
"She hesitates over the last part, then gives you the full address.",
"She tells you where to find her and waits to see if you act normal about it.",
"{name} watches you closely before deciding how much of her private life to reveal.",
"Her answer comes after a real pause, not automatic politeness.",
"She lets the idea exist long enough to become possible."
],
"ask_anal_sex_failure": [
"Her body turns guarded as soon as you ask for anal.",
"She gives a small shake of her head, uneasy with the idea of anal.",
"{name} stops the act before it can begin.",
"She shakes her head and keeps her hips away from you.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"ask_anal_sex_success": [
"Her fingers clutch at you while her asshole takes more.",
"Her ass grips your cock hard.",
"Her body shakes each time your cock sinks deeper.",
"{name} breathes through the stretch and lets you stay inside.",
"She pushes back by a small amount once the stretch eases.",
"{name} freezes around the thought, measuring trust, heat, and risk before answering."
],
"ask_blowjob_failure": [
"She refuses the blowjob request and keeps her mouth to herself.",
"Her eyes drop for a second, then return with a clear refusal.",
"{name} stops the act before it can begin.",
"Her mouth stays closed, and her expression says she is not ready for that.",
"She shakes her head without moving closer.",
"She moves out of position before you can continue."
],
"ask_blowjob_success": [
"She looks up at you with your cock still in her mouth.",
"Her mouth grows wetter around your dick.",
"{name} looks down at your cock before deciding whether to give you her mouth.",
"Her lips tighten around your cock.",
"{name}'s tongue works the head before she takes more.",
"She takes another inch and breathes through her nose."
],
"ask_bottom_off_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"ask_bottom_off_success": [
"She lets the fabric come away and watches your face.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her skin shows a little more, and she does not cover it.",
"Her breathing changes once more skin is exposed.",
"Her body reacts to the exposure before she puts words on it.",
"She hooks her thumbs into the waistband and slides her bottoms down.",
"The undressing makes the air warmer between you."
],
"ask_bra_off_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"ask_bra_off_success": [
"She lets the fabric come away and watches your face.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her skin shows a little more, and she does not cover it.",
"Her breathing changes once more skin is exposed.",
"Her body reacts to the exposure before she puts words on it.",
"She reaches behind her back and unhooks the bra.",
"The undressing makes the air warmer between you."
],
"ask_footjob_failure": [
"Her foot slips away from your cock and stays out of reach.",
"She draws her knees closer and leaves your cock untouched.",
"Her expression tightens before your cock gets anywhere near her feet.",
"She plants one foot out of reach, making the refusal obvious.",
"Her toes curl back against the floor, not around you."
],
"ask_footjob_success": [
"Her eyes drop to your cock before her feet move closer.",
"Her feet press around your cock and rub it slowly.",
"Your cock grows slick against her feet.",
"Her feet keep your cock trapped between them.",
"{name} watches your shaft slide between her soles.",
"She flexes her toes when you twitch against her.",
"She keeps you pinned between her soles.",
"She shifts her legs, testing the contact before she commits to the stroke."
],
"ask_handjob_failure": [
"She refuses the handjob request and keeps her hands to herself.",
"Her hands stay to herself after the request.",
"{name} stops the act before it can begin.",
"She folds her hands against her stomach and shakes her head.",
"She keeps her hands away from your cock and shakes her head.",
"She keeps her hands still and refuses without making it dramatic."
],
"ask_handjob_success": [
"Her fingers tighten around your cock.",
"{name} watches your face while her hand works you.",
"She keeps her wrist loose and her eyes on you.",
"{name} watches your reaction as her hand moves toward you.",
"Precum slicks her palm as she keeps stroking.",
"Her grip changes when she feels you throb."
],
"ask_naked_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"ask_naked_success": [
"She lets the fabric come away and watches your face.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her skin shows a little more, and she does not cover it.",
"Her breathing changes once more skin is exposed.",
"Her body reacts to the exposure before she puts words on it.",
"She removes the last of her clothes and stands naked in front of you.",
"The undressing makes the air warmer between you."
],
"ask_number_failure": [
"{name} gives a short answer and stops feeding the conversation.",
"She looks away before you can ask more.",
"Her posture closes, polite but clear.",
"{name} keeps the boundary firm around the invitation.",
"She does not let the offer become a negotiation.",
"The request closes before it can gain momentum.",
"She steps back from the implication in the ask.",
"Her refusal is calm, but final."
],
"ask_number_success": [
"She checks your face before handing the number over.",
"{name} keeps her eyes on you while you put the number away.",
"{name} writes the number down and lets you take it.",
"Her fingers linger on the paper for a second before she lets go.",
"She gives you the number, then watches how carefully you save it.",
"After a short pause, she gives you the number.",
"Her answer comes after a real pause, not automatic politeness.",
"She lets the idea exist long enough to become possible."
],
"ask_panties_off_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"ask_panties_off_success": [
"She lets the fabric come away and watches your face.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her skin shows a little more, and she does not cover it.",
"Her breathing changes once more skin is exposed.",
"Her body reacts to the exposure before she puts words on it.",
"She lets her panties come down but keeps her eyes on your hands.",
"The undressing makes the air warmer between you."
],
"ask_permission_finger_failure": [
"{name} pulls back and makes the refusal clear.",
"She refuses permission before your hand moves any farther.",
"{name} stops the act before it can begin.",
"Her thighs stay together while she refuses permission.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"ask_permission_finger_success": [
"Her pussy tightens around your fingers.",
"Her thighs tremble while your fingers move inside her.",
"{name}'s hips rock into your hand.",
"Her clit twitches under your thumb.",
"She gets wetter as your fingers keep working.",
"{name} looks at your hand, then at you, weighing the permission before giving it."
],
"ask_permission_oral_failure": [
"{name} pulls back and makes the refusal clear.",
"She refuses the request before your mouth goes anywhere.",
"{name} stops the act before it can begin.",
"Her thighs close as she shakes her head.",
"Her legs remain closed, and the look she gives you answers the request.",
"She moves out of position before you can continue."
],
"ask_permission_oral_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"{name}'s hips lift toward your mouth.",
"Her pussy gets wetter against your tongue.",
"She breathes harder each time your mouth returns to her clit.",
"{name}'s thighs tense at the thought before she answers.",
"Her fingers tighten in your hair."
],
"ask_sex_failure": [
"She refuses the request before either of you changes position.",
"She seems uneasy about your request to have sex, and lets you know she is not ready.",
"{name} stops the act before it can begin.",
"She shakes her head and looks away.",
"Her posture tightens at the question, making the answer clear before she says it.",
"She moves out of position before you can continue."
],
"ask_sex_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"She wraps herself closer as your cock moves inside her.",
"Her wet cunt holds you tight.",
"Her breath breaks each time you push deeper.",
"{name} studies you at the edge of the decision, knowing exactly what yes would mean."
],
"ask_titfuck_failure": [
"She pulls her upper body back and keeps your cock away from her tits.",
"Her hands stay firm between your cock and her chest.",
"She shifts away, leaving your cock outside her chest.",
"Her tits press together for a second, then she breaks away.",
"Her arms shift across her chest, stopping the contact."
],
"ask_titfuck_success": [
"Your cock slips through the soft press of her tits.",
"Her tits squeeze around your cock.",
"Her nipples harden while your shaft moves between her breasts.",
"Her chest rises as she looks from your face to your cock.",
"She cups her tits uncertainly, then brings them together around you.",
"She exhales through her nose and lets her breasts close around your shaft.",
"Her breasts slide around you with each push.",
"{name} holds her chest tight and watches you slide through."
],
"ask_top_off_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"ask_top_off_success": [
"She lets the fabric come away and watches your face.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her skin shows a little more, and she does not cover it.",
"Her breathing changes once more skin is exposed.",
"Her body reacts to the exposure before she puts words on it.",
"She pulls her top over her head and drops it beside her.",
"The undressing makes the air warmer between you."
],
"beg_anal_sex_failure": [
"Her expression tightens at the plea for anal.",
"Her hand presses against your hip until you stop.",
"{name} stops the act before it can begin.",
"She shakes her head again without moving closer.",
"The pleading does not make her any more willing to give you her ass.",
"She moves out of position before you can continue."
],
"beg_anal_sex_success": [
"Her fingers clutch at you while her asshole takes more.",
"Her ass grips your cock hard.",
"Her body shakes each time your cock sinks deeper.",
"{name} hears the need in your voice and the risk in the act.",
"{name} breathes through the stretch and lets you stay inside.",
"She pushes back by a small amount once the stretch eases."
],
"beg_blowjob_failure": [
"She hears the begging and still refuses to use her mouth.",
"She hears the need in your voice and still keeps her mouth away.",
"{name} stops the act before it can begin.",
"Her face softens for a second, but her answer stays no.",
"She looks at your cock, then shakes her head and moves back.",
"She moves out of position before you can continue."
],
"beg_blowjob_success": [
"She looks up at you with your cock still in her mouth.",
"Her mouth grows wetter around your dick.",
"Her lips tighten around your cock.",
"{name}'s tongue works the head before she takes more.",
"{name} hears the desperation and decides whether to reward it with her lips.",
"She takes another inch and breathes through her nose."
],
"beg_cunnilingus_failure": [
"She seems uncomfortable with the begging and keeps her thighs closed.",
"She looks uncomfortable with how badly you want to go down on her.",
"{name} stops the act before it can begin.",
"She keeps her thighs closed and shakes her head.",
"She refuses to open herself to your mouth.",
"Her thighs stay closed while she refuses the plea."
],
"beg_cunnilingus_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"{name}'s hips lift toward your mouth.",
"Her pussy gets wetter against your tongue.",
"She breathes harder each time your mouth returns to her clit.",
"Her fingers tighten in your hair.",
"{name} hears the hunger in the request and lets it work on her."
],
"beg_footjob_failure": [
"Her face hardens at the need in your voice.",
"She looks down at you without giving her feet an inch.",
"Her legs tuck closer to herself, cutting off the route you wanted.",
"She hears the begging and still keeps her body closed.",
"Her foot leaves your shaft, ending the stroke at once."
],
"beg_footjob_success": [
"Her feet press around your cock and rub it slowly.",
"Your cock grows slick against her feet.",
"Her expression changes when she hears the need in your voice.",
"{name} watches your shaft slide between her soles.",
"She flexes her toes when you twitch against her.",
"She keeps you pinned between her soles.",
"She lets the silence stretch, then moves her feet into place.",
"Both feet squeeze you and slide together."
],
"beg_handjob_failure": [
"She hears the begging and keeps her hands to herself.",
"Her hands remain still despite the need in your voice.",
"{name} stops the act before it can begin.",
"She keeps both hands away from your cock.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"beg_handjob_success": [
"Her fingers tighten around your cock.",
"{name} watches your face while her hand works you.",
"She keeps her wrist loose and her eyes on you.",
"Precum slicks her palm as she keeps stroking.",
"Her grip changes when she feels you throb.",
"{name} lets the begging hang for a second before reaching for you."
],
"beg_sex_failure": [
"The begging does not change her answer.",
"She seems uneasy about your begging for sex and lets you know she isn't ready.",
"{name} stops the act before it can begin.",
"The begging makes her more uneasy instead of softer.",
"The heat cuts off at the boundary she sets.",
"She stays where she is, but the answer does not change."
],
"beg_sex_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"She wraps herself closer as your cock moves inside her.",
"{name} hears the desperation and decides whether it makes her want you closer or farther away.",
"Her wet cunt holds you tight.",
"Her breath breaks each time you push deeper."
],
"beg_sixty_nine_failure": [
"She refuses the idea of sixty-nine before either of you moves.",
"The request for sixty-nine makes her guarded rather than tempted.",
"{name} stops the act before it can begin.",
"She steps back before you can line your bodies up.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"beg_sixty_nine_success": [
"Her mouth works your cock while her hips grind against your face.",
"{name} keeps one hand on you while your tongue works her pussy.",
"She loses track of your cock for a second, then takes it back into her mouth.",
"Her thighs tighten around your head when you moan against her.",
"The two of you get wetter and sloppier together.",
"{name} lets the begging sharpen the idea before she moves."
],
"beg_titfuck_failure": [
"She keeps her tits away from your cock while the plea dies out.",
"Her arms fold lightly, closing the route to her breasts.",
"She shifts away, leaving your cock outside her chest.",
"Her tits press together for a second, then she breaks away.",
"She watches you beg without bringing her chest closer."
],
"beg_titfuck_success": [
"Your cock slips through the soft press of her tits.",
"Her nipples brush your cock as you thrust.",
"Her tits squeeze around your cock.",
"Her nipples harden while your shaft moves between her breasts.",
"She watches you for a beat, then cups her tits around you.",
"A small, pleased breath escapes her as her breasts close around your shaft.",
"{name} holds her chest tight and watches you slide through.",
"She keeps her chest together until your breathing changes."
],
"blowjob_to_sex_failure": [
"She keeps you trapped in her mouth.",
"Her head turns away, leaving your cock wet but untouched.",
"She stays locked on blowjob.",
"Her lips seal tight around you.",
"She sucks harder and refuses to stop.",
"She blocks any penetration.",
"She pushes you back to suck more.",
"She shakes her head and refuses."
],
"blowjob_to_sex_success": [
"Her breath catches when your cock moves from her mouth to her cunt.",
"Her pussy tightens as the wet head of your cock presses in.",
"She is still breathing like she had you in her mouth when your cock starts filling her.",
"Her thighs part wider as you turn the blowjob into sex.",
"Her body shifts from sucking to taking you, the change making her tense around the first thrust."
],
"breast_sex_failure": [
"She pulls her chest away from your hands.",
"{name} covers her tits and steps back.",
"{name} stops the act before it can begin.",
"She folds an arm across her breasts and pulls back.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"breast_sex_pleasure_failure": [
"She pulls her chest back before your cock can slide between her tits.",
"Her hands cover her breasts and stop the act there.",
"She pulls her chest away from your hands.",
"{name} covers her tits and steps back.",
"She shifts away, leaving your cock outside her chest.",
"Her tits press together for a second, then she breaks away.",
"She moves her upper body back and ends the titfuck attempt."
],
"breast_sex_pleasure_success": [
"She squeezes her breasts together around your cock with a focused look.",
"Her nipples stay hard while your cock moves between her breasts.",
"She looks up while keeping your cock trapped between her tits.",
"Her tits squeeze around your cock.",
"Her tits press tight as you slide between them.",
"Her breasts slide around you with each push.",
"Her breasts bounce softly around your shaft.",
"She presses her chest tighter around your shaft."
],
"breast_sex_success": [
"Your cock slips through the soft press of her tits.",
"Her tits squeeze around your cock.",
"Her nipples harden while your shaft moves between her breasts.",
"{name}'s breasts squeeze around your shaft as she learns your rhythm.",
"{name} holds her chest tight and watches you slide through.",
"She keeps her chest together until your breathing changes."
],
"caress_thigh_failure": [
"She moves your hand away and steps back.",
"{name} moves your hand away before the touch can settle.",
"Her knee turns inward and blocks your hand from moving higher.",
"She interrupts the contact before it becomes familiar.",
"The boundary comes down fast and clean.",
"She shifts out of reach and keeps the line there."
],
"caress_thigh_success": [
"She parts her stance slightly as your fingers trace higher along her thigh.",
"{name} lets your hand stay on her thigh, close enough to make the direction clear.",
"{name} watches your hand climb her thigh and allows the slow advance.",
"Her thigh warms under your touch as you test how far she will let it go.",
"Her leg tenses under your palm, but she does not pull away."
],
"casual_heat_success": [
"{name} answers, but her body is slower to come back to you.",
"She gives you the reply, then has to find the heat again.",
"Her attention returns, but the interruption leaves a small pause."
],
"climax_back_failure": [
"{name} blocks the target with a quick hand.",
"She turns your body away before you can cum there.",
"{name} blocks the target before the orgasm lands there.",
"She turns away and protects that boundary.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_back_success": [
"Cum streaks across her back while she holds still through the last pulses.",
"She feels the hot streaks land across her back and exhales through the mess.",
"Her shoulders tense as your cum spreads over her skin from behind.",
"A thick line of cum slides down her back while she stays bent under the aftermath.",
"She glances back once, aware of the cum marking her from behind."
],
"climax_body_failure": [
"{name} blocks the target with a quick hand.",
"She turns your body away before you can cum there.",
"{name} blocks the target before the orgasm lands there.",
"She moves clear and protects that boundary.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_body_success": [
"She looks down at the cum on her skin and lets the mess sit there.",
"Her stomach tightens under the warm streaks.",
"She exhales slowly, watching your cum spread across her body.",
"The mess clings to her skin while she decides whether to move or make you look at it.",
"She shifts just enough to feel the cum slide."
],
"climax_boobs_failure": [
"She pulls her chest away from your hands.",
"{name} covers her tits and steps back.",
"{name} blocks the target before the orgasm lands there.",
"She turns away and protects her chest.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_boobs_success": [
"Her tits rise with her breathing, cum shining across her nipples.",
"She looks down at the mess on her breasts before looking back at you.",
"A thick streak slides between her tits while she stays still under it.",
"She presses her chest forward slightly, making the cum spread across her skin.",
"Her nipples stay hard under the warm mess."
],
"climax_crotch_failure": [
"{name} blocks the target with a quick hand.",
"She turns her hips away before you can cum there.",
"{name} blocks the target before the orgasm lands there.",
"She moves her pussy out of reach and protects that boundary.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_crotch_success": [
"Cum lands across her lower belly and close to her slit, warm enough to make her tense.",
"She looks down at the mess near her pussy and holds still for the last pulse.",
"The cum lands dangerously close to her wet slit, and her thighs tighten around the sight of it.",
"A streak of cum slips toward her crotch while she keeps her eyes on you.",
"She shifts only after the last pulse lands near her pussy."
],
"climax_face_failure": [
"{name} blocks the target with a quick hand.",
"She turns her face away before you can cum there.",
"{name} blocks the target before the orgasm lands there.",
"She pulls her face clear and protects that boundary.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_face_success": [
"She blinks through the mess, cum streaked across her cheeks and mouth.",
"A line of cum slips down toward her chin while she keeps staring at you.",
"She wipes nothing away at first, letting the facial sit hot on her skin.",
"Her lips part under the mess, breath slow and visibly shaken.",
"She looks up at you through the cum on her face."
],
"climax_failure": [
"She knocks your aim aside and keeps her body clear, leaving you to finish across your own hand.",
"She gets out of the way before the first pulse lands, and your cum spills over your fingers instead of her.",
"She blocks your aim at the last second, so the mess ends up on your stomach and hand.",
"She refuses to be marked there and makes you catch the orgasm with your own hand.",
"She turns your body away before you can cum there.",
"She pulls clear of the target and watches you lose it on yourself instead."
],
"climax_hands_failure": [
"Her hand leaves your cock and stays off it.",
"{name} stops touching you before you can chase it.",
"{name} blocks the target before the orgasm lands there.",
"She keeps her hands away and protects that boundary.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_hands_success": [
"Her fingers stay open as your cum spills across her palms.",
"She watches your cock pulse into her hands, cum spreading over her fingers.",
"Her palms catch your cum, warm and thick between her fingers.",
"She holds your mess in her hands for a second before moving.",
"Your cum coats her fingers while she keeps her hands steady under you."
],
"climax_inside_ass_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"{name} blocks the target before the orgasm lands there.",
"She protects that boundary and keeps your cum out of her ass.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_inside_ass_success": [
"Her ass tightens around you as you finish inside her.",
"She goes still for a second, clearly feeling your cum deep in her asshole.",
"Her hole clenches around your cock through the last pulse.",
"She moves carefully afterward, sensitive and full from the anal creampie.",
"Her body stays tense around the cum you left in her ass."
],
"climax_inside_failure": [
"{name} blocks the target with a quick hand.",
"She turns your body away before you can cum inside her.",
"{name} blocks the target before the orgasm lands there.",
"She protects that boundary and keeps your cum out of her cunt.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_inside_success": [
"Her thighs tighten around you as your cum fills her cunt.",
"She takes a slow breath, clearly feeling the warmth deep inside her pussy.",
"Her cunt keeps clenching around your cock after the last pulse.",
"She presses her legs together for a second, holding your cum inside.",
"Her body stays close, wet and full around you."
],
"climax_mouth_failure": [
"{name} blocks the target with a quick hand.",
"She turns her mouth away before you can cum there.",
"{name} blocks the target before the orgasm lands there.",
"She pulls her mouth clear and protects that boundary.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_mouth_success": [
"Her lips stay parted around the mess for a second before she pulls back.",
"Cum sits thick on her tongue, and she keeps her eyes on you before swallowing.",
"She breathes through her nose, mouth full of your cum, then lets her lips close around the last pulse.",
"A little cum slips onto her lower lip before she wipes it with her tongue.",
"She holds the cum in her mouth long enough to make sure you see it."
],
"climax_pants_failure": [
"{name} blocks the target with a quick hand.",
"She turns your body away before you can use her for it.",
"{name} blocks the target before the orgasm lands there.",
"She moves clear and protects that boundary.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_pants_success": [
"Your cum soaks into your own clothes while she watches the failed restraint play out.",
"She looks down at the wet mess in your pants and lets the embarrassment sit there.",
"Your orgasm catches in your clothes, hot and uselessly contained.",
"Your body jerks through the orgasm while the cum spreads inside your pants.",
"She watches the stain grow and says nothing for a second too long."
],
"climax_stomach_failure": [
"{name} blocks the target with a quick hand.",
"She turns her stomach away before you can cum there.",
"{name} blocks the target before the orgasm lands there.",
"She moves her belly clear and protects that boundary.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_stomach_success": [
"Cum spreads across her stomach while her breath lifts the mess in slow little movements.",
"She looks down as the hot streaks land over her belly.",
"Her stomach tightens under the warm cum.",
"A thick streak slips over her lower belly while she stays still.",
"She exhales slowly, watching your cum settle across her skin."
],
"climax_success": [
"She watches your cock pulse through the orgasm, eyes fixed on the cum you could not hold back.",
"Your body tightens as you cum, and she stays close enough to see every pulse.",
"She keeps her eyes on you while the orgasm drains out of your body.",
"Your breath breaks as you cum, and she studies the way control leaves you.",
"The last pulses leave you visibly spent while she watches without looking away."
],
"climax_throat_failure": [
"Her mouth leaves your cock and she keeps her face away.",
"{name} sits back before you can guide her again.",
"{name} blocks the target before the orgasm lands there.",
"She pulls off and protects that boundary.",
"The orgasm still happens, but she denies the place you wanted.",
"She forces your cum off target at the last second.",
"Her refusal changes where the orgasm lands."
],
"climax_throat_success": [
"Her throat works around your cum, swallowing in tight little pulls.",
"Her eyes water, but she stays on you until the last pulse is done.",
"She pulls back slowly, breath rough, lips wet from taking you deep.",
"Her hand grips your thigh while her throat takes the last of your cum.",
"She swallows hard, then breathes out through parted lips."
],
"command_failure": [
"She refuses the instruction without moving.",
"Her body closes off, and the attempt ends.",
"She stops the order with a look before it can become action.",
"Her posture stiffens instead of obeying.",
"She shuts it down without letting it grow."
],
"command_success": [
"She follows the instruction after a brief pause.",
"She adjusts her body the way you told her to.",
"She gives in to the instruction, but keeps watching your face.",
"She lets the command guide her next movement.",
"Her body gives a clear response."
],
"compliment_style_failure": [
"She gives the compliment a short look and does not feed it.",
"{name} lets the compliment pass without warming to it.",
"Her expression stays closed around the failed compliment.",
"She answers briefly and leaves no room to continue.",
"The compliment gets a polite stop instead of a smile."
],
"compliment_style_success": [
"She keeps eye contact while she answers.",
"{name} gives the topic enough attention to answer properly.",
"Her shoulders loosen as she keeps talking."
],
"cont_69_focus_her_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"She pushes your shoulder lightly until you stop.",
"Her thighs tense around your face when you make your mouth carry too much of the sixty-nine.",
"Her mouth falters on your cock as your attention turns too one-sided.",
"Her thighs tighten around your face as the extra focus starts to overwhelm her.",
"The mutual rhythm gets uneven, her hips twitching instead of relaxing into your tongue.",
"She stays in place, but her body resists letting your mouth take over the whole exchange."
],
"cont_69_focus_her_success": [
"Her mouth works your cock while her hips grind against your face.",
"{name} keeps one hand on you while your tongue works her pussy.",
"{name} struggles to keep her mouth steady as your tongue takes over her focus."
],
"cont_69_grind_failure": [
"Her mouth pulls back before your hips can force the pace.",
"She turns her head enough to stop your cock from pressing deeper.",
"Her hand settles against your hip, stopping the grind before it becomes too much.",
"Her thighs tense around your head while her mouth refuses the extra pressure.",
"She breaks the rougher motion and makes you slow down."
],
"cont_69_grind_success": [
"Her lips tighten around your cock when your hips start moving into her mouth.",
"She adjusts around the pressure, breathing through her nose while your tongue stays on her pussy.",
"Her mouth loses its neat pace and turns messier around the way you grind into her.",
"Her thighs press harder around your head as your cock pushes deeper against her tongue.",
"The rougher motion makes her moan around your cock before she steadies herself."
],
"cont_69_keep_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"She pushes your shoulder lightly until you stop.",
"Her breathing breaks the mutual rhythm before either of you can settle back into it.",
"She keeps trying, but her mouth and hips fall out of sync.",
"Her body stays in position, though the shared rhythm loses some ease.",
"The sixty-nine stays in place, only rougher and less certain under her tension.",
"Her body remains over you, but the easy rhythm is gone."
],
"cont_69_keep_success": [
"Her mouth works your cock while her hips grind against your face.",
"{name} keeps one hand on you while your tongue works her pussy.",
"Her thighs tighten around your head when you moan against her.",
"{name} stays locked in the mutual rhythm, pleasure moving both ways."
],
"cont_69_let_her_focus_you_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"She pushes your shoulder lightly until you stop.",
"Her mouth slows when you hold back and expect her to carry the pleasure.",
"She hesitates around your cock, unsure what to do with the focus on her.",
"Her mouth stays near you, but focusing only on you makes the position feel one-sided.",
"Her lips stay on you, but the confidence drains out of the motion.",
"She does not pull away, yet her body never settles into taking charge."
],
"cont_69_let_her_focus_you_success": [
"Her mouth works your cock while her hips grind against your face.",
"{name} keeps one hand on you while your tongue works her pussy.",
"{name} uses the chance to work your cock more deliberately."
],
"cont_69_to_sex_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"She pushes your shoulder lightly until you stop.",
"Her legs tighten when your body starts shifting out of sixty-nine toward sex.",
"She catches the change in your hips and her breathing turns guarded.",
"She doesn't follow the shift from sixty-nine to sex.",
"The mutual oral remains there, but her body resists the move toward penetration.",
"She keeps the position from turning into sex, tense but still close."
],
"cont_69_to_sex_success": [
"Her thighs spread again when your cock replaces your mouth.",
"She is still wet from your tongue when the first thrust makes her body jolt.",
"Her breath catches as the messy oral turns into sex.",
"Her pussy opens under you, slick from the position you just left.",
"She gives up on keeping the oral rhythm once your cock starts pushing in."
],
"cont_anal_cowgirl_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"Her hips hover over you, too tense to ride the anal rhythm any harder.",
"The tight grip of her ass stays there, but her thighs stop helping the motion.",
"Her hips tense over you, and her riding loses its rhythm.",
"She braces with a sharp breath when the cowgirl angle strains her ass.",
"Her body remains over you, but the anal ride loses its confidence."
],
"cont_anal_cowgirl_success": [
"Her fingers clutch at you while her asshole takes more.",
"Her ass grips your cock hard.",
"{name} breathes through the stretch and lets you stay inside.",
"{name} controls the anal rhythm from above."
],
"cont_anal_doggy_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"Her back stiffens in doggy, making every anal thrust feel less welcome.",
"Her hands press harder into the surface as her ass tightens around you.",
"Her back tightens, and the anal rhythm starts wearing her down.",
"The doggy rhythm stutters when her body stops yielding to the stretch.",
"She stays bent forward, but the tension in her hips makes you slow down."
],
"cont_anal_doggy_success": [
"{name} braces forward as her asshole tightens around your cock.",
"Her ass grips your cock hard.",
"{name} breathes through the stretch and lets you stay inside."
],
"cont_anal_hold_failure": [
"{name} pulls back and makes the refusal clear.",
"She stops you before it can continue.",
"Her posture closes and stays closed.",
"Her ass clenches around you, too tense for the deep hold to feel easy.",
"She breathes shallowly while you stay buried, her body asking for less pressure.",
"Her ass clenches hard, and holding the position starts feeling like too much.",
"The stillness stops feeling steady and starts feeling strained in her hips.",
"She remains around your cock, but the hold makes her tighten instead of melt."
],
"cont_anal_hold_success": [
"{name} breathes through the stretch while you keep yourself restrained.",
"She adjusts to the change instead of losing the moment.",
"Her body reacts to the specific change in rhythm."
],
"cont_anal_missionary_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"Her knees draw in slightly as the face-to-face anal angle grows uncomfortable.",
"Her expression tightens under you while her asshole clenches hard around your cock.",
"Her body stays under you, but the anal rhythm starts pulling tension through her legs.",
"The missionary closeness stays, but her body stops softening to the anal pressure.",
"She keeps looking at you, tense enough to make the next thrust slow."
],
"cont_anal_missionary_success": [
"{name} holds your gaze while her ass takes each careful thrust.",
"Her ass grips your cock hard.",
"{name} breathes through the stretch and lets you stay inside."
],
"cont_anal_reverse_cowgirl_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"Her back arches away from you, the reverse angle making her ass tighten too sharply.",
"Her hips lose their rhythm while her tight hole grips you harder than before.",
"Her ass tightens around you, and her movement starts to falter.",
"The reverse ride stays awkward under her tension instead of turning smooth.",
"She remains facing away, but the motion falters with each shallow breath."
],
"cont_anal_reverse_cowgirl_success": [
"{name}'s back arches as she works her asshole around your shaft.",
"Her ass grips your cock hard.",
"{name} breathes through the stretch and lets you stay inside."
],
"cont_anal_slow_failure": [
"{name} pulls back and makes the refusal clear.",
"She stops you before it can continue.",
"Her posture closes and stays closed.",
"Even slowed down, her ass tightens like the pressure is still too much.",
"Her breathing steadies for a second, then catches again around your cock.",
"Her body tightens around your cock, making the anal rhythm harder to keep.",
"The careful pace does not settle her body the way you hoped.",
"She lets the anal stay there, but the tension in her hips keeps building."
],
"cont_anal_slow_success": [
"{name} breathes through the stretch while her body learns the pace.",
"She adjusts to the change instead of losing the moment.",
"Her body reacts to the specific change in rhythm."
],
"cont_anal_wall_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"Her hands press against the wall while her ass tightens around you.",
"The wall keeps her in place, but her body stiffens against the anal pressure.",
"Her body tightens against the wall as the anal rhythm grows harder to take.",
"Her breath hits the wall in short bursts as the angle turns uncomfortable.",
"She stays pinned, but the tension in her legs makes the rhythm break."
],
"cont_anal_wall_success": [
"{name} braces hard against the wall as your cock stays buried in her ass.",
"Her ass grips your cock hard.",
"{name} breathes through the stretch and lets you stay inside."
],
"cont_analingus_circle_failure": [
"{name} pulls her ass away before you can continue.",
"Her hand moves back to cover herself.",
"She closes her thighs and stops the anal attention.",
"Her ass tightens under your circling tongue instead of relaxing open.",
"The next slow circle makes her hips twitch away by a fraction.",
"Her ass tenses when your tongue circles more deliberately.",
"Her thighs tense around your head as the rimming starts to feel too pointed.",
"She keeps her position, but her body stops welcoming the tongue work."
],
"cont_analingus_circle_success": [
"Her hand grips the nearest surface while you lick her asshole.",
"{name}'s ass tightens as tongue and fingers work the same filthy focus.",
"{name}'s ass tenses at first, then opens a little for your tongue."
],
"cont_analingus_keep_failure": [
"{name} pulls her ass away before you can continue.",
"Her hand moves back to cover herself.",
"She closes her thighs and stops the anal attention.",
"Her hips stop offering you the same angle, making the rimming less certain.",
"She breathes harder through the continued licking, tension gathering in her ass.",
"Her body stays open, but the rimming starts drawing tension through her hips.",
"The longer your tongue stays there, the more her body guards the opening.",
"She remains spread, but the easy permission in her posture fades."
],
"cont_analingus_keep_success": [
"Her hand grips the nearest surface while you lick her asshole.",
"{name}'s ass tenses at first, then opens a little for your tongue.",
"{name} shivers into the analingus as the tension changes shape."
],
"cont_analingus_slow_failure": [
"{name} pulls her ass away before you can continue.",
"Her hand moves back to cover herself.",
"She closes her thighs and stops the anal attention.",
"The slower rimming makes her tense more, not less.",
"Her ass tightens under the drawn-out strokes of your tongue.",
"Her asshole tightens under your tongue when you change the pace.",
"She exhales unevenly, her body impatient with the slow attention.",
"The careful pace leaves her guarded instead of relaxed."
],
"cont_analingus_slow_success": [
"Her hand grips the nearest surface while you lick her asshole.",
"{name}'s ass tenses at first, then opens a little for your tongue.",
"{name} tenses at every slow pass of your tongue."
],
"cont_analingus_to_anal_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"Her body tenses when your mouth leaves her ass and your hips start to move closer.",
"She catches the shift from tongue to cock before the anal stretch begins.",
"Her ass tightens when rimming starts turning into anal sex.",
"The rimming had room to continue, but the move toward penetration makes her guard herself.",
"Her ass stays exposed, yet her posture refuses the heavier step."
],
"cont_analingus_to_anal_success": [
"Her asshole tightens when your cock replaces your mouth.",
"She braces herself as the wet rim meets the head of your cock.",
"Her breath goes shallow while the analingus turns into penetration.",
"Her ass clenches around the new pressure before she lets you go farther.",
"The first push makes her fingers dig in while she adjusts."
],
"cont_analingus_to_cunni_failure": [
"{name} pulls her ass away before you can continue.",
"Her hand moves back to cover herself.",
"She closes her thighs and stops the anal attention.",
"Her hips tense when your mouth leaves her ass for her pussy.",
"The shift away from rimming makes her body lose the thread of the pleasure.",
"Her body hesitates when your mouth starts moving from her ass back to her pussy.",
"She stays close, but her thighs do not open into the new angle.",
"Her ass had started to relax, and the change toward her slit breaks that ease."
],
"cont_analingus_to_cunni_success": [
"Her body relaxes a little when your mouth returns to her pussy.",
"Her hips follow your tongue back to her clit.",
"She exhales hard when the analingus turns back into cunnilingus.",
"Her thighs open wider once your mouth finds her wet slit again.",
"The familiar pressure on her pussy pulls a quicker reaction out of her."
],
"cont_bj_deeper_failure": [
"Her mouth stays on you, but the deeper push makes her rhythm turn tense.",
"Her mouth leaves your cock and she keeps her face away.",
"{name} sits back before you can guide her again.",
"Her throat tightens before she can take you any deeper.",
"Her lips stay around your cock, but her jaw stiffens against the deeper push.",
"She keeps the blowjob going, but gives no room for going deeper.",
"She keeps sucking, only shallower now, with a warning in her breathing.",
"The blowjob continues, but her mouth refuses the extra depth."
],
"cont_bj_deeper_success": [
"Her lips tighten around your cock.",
"{name}'s tongue works the head before she takes more.",
"{name} breathes carefully around you as the blowjob turns deeper."
],
"cont_bj_eye_contact_failure": [
"Her lips part from your dick and stay away.",
"Her mouth leaves your cock and she keeps her face away.",
"{name} sits back before you can guide her again.",
"Her eyes flick away, and the blowjob loses its rhythm for a beat.",
"She keeps her mouth on you, but the forced eye contact makes her hesitate.",
"Her mouth keeps moving, but the eye contact makes her tense.",
"Her gaze breaks first, leaving her lips slower around your cock.",
"The look makes her cheeks tense even while the blowjob continues."
],
"cont_bj_eye_contact_success": [
"Her lips tighten around your cock.",
"{name}'s tongue works the head before she takes more.",
"{name} looks up at you with her mouth still full."
],
"cont_bj_guide_rhythm_failure": [
"Her lips part from your dick and stay away.",
"Her mouth leaves your cock and she keeps her face away.",
"{name} sits back before you can guide her again.",
"Her mouth stumbles against the rhythm you try to guide.",
"Her hand tightens on your thigh as your control makes the blowjob less smooth.",
"Her lips stay near your cock, but her jaw tightens when you guide the pace.",
"She keeps you between her lips, but the pace no longer feels natural to her.",
"The guided rhythm makes her jaw tense instead of obedient."
],
"cont_bj_guide_rhythm_success": [
"{name} adjusts her mouth and tongue to the pace you set.",
"Her lips tighten around your cock.",
"{name}'s tongue works the head before she takes more."
],
"cont_bj_let_continue_failure": [
"Her lips part from your dick and stay away.",
"Her mouth leaves your cock and she keeps her face away.",
"{name} sits back before you can guide her again.",
"Left to her own pace, she slows until the blowjob starts to lose heat.",
"Her mouth stays on you, but the confidence behind it fades.",
"Her mouth stays near you, but the rhythm feels less eager.",
"She keeps going for another breath, then her rhythm turns uncertain.",
"The blowjob continues, only looser and more hesitant than before."
],
"cont_bj_let_continue_success": [
"She looks up at you with your cock still in her mouth.",
"Her lips tighten around your cock.",
"{name}'s tongue works the head before she takes more.",
"{name} settles into the blowjob and watches your reaction from below."
],
"cont_bj_praise_failure": [
"Her lips part from your dick and stay away.",
"Her mouth leaves your cock and she keeps her face away.",
"{name} sits back before you can guide her again.",
"Your praise makes her mouth pause instead of encouraging her.",
"Her lips tighten around you, but the words pull her out of the rhythm.",
"Her mouth keeps moving, though the praise makes her expression tighten.",
"She keeps sucking, though her expression turns self-conscious.",
"The compliment lands awkwardly, leaving her mouth slower on your cock."
],
"cont_bj_praise_success": [
"Her lips tighten around your cock.",
"{name}'s tongue works the head before she takes more.",
"{name} reacts to the praise without taking her mouth off you."
],
"cont_bj_slow_down_failure": [
"Her lips part from your dick and stay away.",
"Her mouth leaves your cock and she keeps her face away.",
"{name} sits back before you can guide her again.",
"She tries to slow down, but the change makes her lose the rhythm.",
"Her lips stay around you while her pace turns stiff and uncertain.",
"Her mouth stays near you, but the slower pace brings tension into her jaw.",
"The slower blowjob feels controlled in the wrong way, and her jaw tightens.",
"She keeps going, but the easy motion is gone."
],
"cont_bj_slow_down_success": [
"Her lips tighten around your cock.",
"{name}'s tongue works the head before she takes more.",
"{name} eases her mouth back and watches you fight the edge."
],
"cont_bj_to_sex_failure": [
"Her lips part from your dick and stay away.",
"Her mouth leaves your cock and she keeps her face away.",
"{name} sits back before you can guide her again.",
"Her mouth leaves you with hesitation when your body starts shifting toward sex.",
"She notices the move from blowjob to penetration and grows tense before it happens.",
"She doesn't follow the shift from her mouth to sex.",
"The blowjob has not fully ended, but her body resists the next step.",
"She keeps close, yet her posture says she is not ready to turn it into sex."
],
"cont_bj_to_sex_success": [
"Her breath catches when your cock moves from her mouth to her cunt.",
"Her pussy tightens as the wet head of your cock presses in.",
"She is still breathing like she had you in her mouth when your cock starts filling her.",
"Her thighs part wider as you turn the blowjob into sex.",
"Her body shifts from sucking to taking you, the change making her tense around the first thrust."
],
"cont_bj_touch_hair_failure": [
"Her lips part from your dick and stay away.",
"Her mouth leaves your cock and she keeps her face away.",
"{name} sits back before you can guide her again.",
"Her scalp tenses under your fingers, and her mouth slows around you.",
"Your hand in her hair makes her jaw tighten instead of relax.",
"Her mouth stays on you, but her body flinches when your hand touches her hair.",
"She keeps sucking, but the touch in her hair breaks her ease.",
"Her mouth stays on your cock while her body warns against guiding her head."
],
"cont_bj_touch_hair_success": [
"Her lips tighten around your cock.",
"{name}'s tongue works the head before she takes more.",
"{name} lets the touch stay in her hair without letting it become force."
],
"cont_cunni_add_fingers_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"She pushes your shoulder lightly until you stop.",
"Her thighs tense around your mouth when your fingers join your tongue.",
"The extra touch makes her hips twitch instead of opening wider.",
"Her body tightens when your fingers join your mouth.",
"Your tongue can stay, but her body resists the added fingers.",
"She breathes sharply as the cunnilingus turns too crowded for her."
],
"cont_cunni_add_fingers_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"{name}'s hips lift toward your mouth.",
"{name}'s body reacts harder when your fingers join your mouth."
],
"cont_cunni_keep_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"She pushes your shoulder lightly until you stop.",
"Her thighs tremble around your head, less from pleasure now than strain.",
"She lets your mouth stay there, but her hips stop moving into it.",
"Her thighs tense around your mouth, and the rhythm loses momentum.",
"The licking continues while her body grows guarded under your tongue.",
"Her fingers tense against whatever she is holding as the oral loses ease."
],
"cont_cunni_keep_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"{name}'s hips lift toward your mouth.",
"{name}'s thighs frame your face tighter as the pleasure builds.",
"Her fingers tighten in your hair."
],
"cont_cunni_tease_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"She pushes your shoulder lightly until you stop.",
"The teasing leaves her frustrated in the wrong way, her thighs tightening around you.",
"Her hips chase your tongue once, then tense when you keep denying the rhythm.",
"Her thighs close a little around your face as the teasing starts to overwhelm her.",
"She does not pull your mouth away, but the stop-start attention irritates her body.",
"The playful edge slips into discomfort before the teasing can work."
],
"cont_cunni_tease_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"{name}'s hips lift toward your mouth.",
"Her fingers tighten in your hair."
],
"cont_cunni_to_analingus_failure": [
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"Her body tightens when your mouth leaves her pussy and drifts toward her ass.",
"The shift from clit to asshole makes her thighs close slightly around your head.",
"Her body tightens when your mouth starts drifting from her pussy toward her ass.",
"She was open for your tongue on her pussy, but not for the turn toward rimming.",
"Her hips angle away from the new direction before your mouth settles there."
],
"cont_cunni_to_analingus_success": [
"Her thighs tense when your mouth leaves her pussy and moves lower.",
"Her breath catches as your tongue finds her ass instead of her clit.",
"She stays open, but the dirtier target makes her body go still for a second.",
"Her pussy is still wet when your mouth starts working her asshole.",
"The change makes her tense first, then soften when you keep it careful."
],
"cont_cunni_to_sex_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"She pushes your shoulder lightly until you stop.",
"Her thighs tense when your mouth leaves her pussy and your hips start to rise.",
"The oral can continue, but the move toward sex makes her body guarded.",
"Her thighs tense when your mouth starts giving way to sex.",
"She keeps you close between her legs without giving the opening for penetration.",
"Her hips stay near your mouth, not ready to trade licking for your cock."
],
"cont_cunni_to_sex_success": [
"Her thighs stay open when your cock replaces your mouth.",
"Her cunt clenches as the first push turns the licking into sex.",
"She is still trembling from your tongue when your cock starts to enter her.",
"Her wet slit parts easily after everything your mouth did to her.",
"The first thrust makes her hips jump, her body still oversensitive from your tongue."
],
"cont_finger_keep_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your fingers away from her pussy.",
"She catches your wrist before you can touch her again.",
"Her inner walls tighten around your fingers, turning the motion less welcome.",
"She keeps your hand there, but her thighs begin to close around your wrist.",
"Her hips stop following your hand, and the fingering turns awkward.",
"The fingering continues with less ease as her hips stop following your hand.",
"Her body grows tense around each curl of your fingers."
],
"cont_finger_keep_success": [
"Her pussy tightens around your fingers.",
"{name}'s cunt tightens around each slow curl of your fingers.",
"{name}'s hips rock into your hand."
],
"cont_finger_tease_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your fingers away from her pussy.",
"She catches your wrist before you can touch her again.",
"The teasing makes her cunt clench, but her thighs tense with irritation too.",
"Her hips chase your fingers once, then stiffen when you pull back again.",
"Her body tightens around your hand, and the teasing no longer lands cleanly.",
"She does not reject the touch outright, but the shallow returns start bothering her.",
"The stop-start fingering leaves her breath sharp instead of hungry."
],
"cont_finger_tease_success": [
"Her pussy tightens around your fingers.",
"{name}'s hips rock into your hand.",
"{name} tenses around the teasing motion, frustrated by every retreat."
],
"cont_finger_to_mouth_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your fingers away from her pussy.",
"She catches your wrist before you can touch her again.",
"Her thighs tighten when your fingers leave her cunt and your mouth moves in.",
"The shift from fingers to tongue makes her body hesitate before accepting the new touch.",
"Her thighs tense when your fingers begin giving way to your mouth.",
"She was open to your hand, but her hips guard against your mouth taking over.",
"The wet path your fingers made does not keep her relaxed when your face lowers."
],
"cont_finger_to_mouth_success": [
"Her hips jump when your tongue replaces your fingers.",
"Her wet pussy opens under your mouth after your fingers leave her.",
"She tightens from the sudden switch from hand to tongue.",
"Her thighs frame your face while her cunt is still slick from your fingers.",
"Her breath breaks when your tongue finds the clit your hand left sensitive."
],
"cont_footjob_keep_failure": [
"Her hand leaves your cock and stays off it.",
"She pulls away from your hard cock.",
"{name} stops touching you before you can chase it.",
"Her feet keep touching you, but the strokes turn stiff and uneven.",
"Her toes flex away from your shaft instead of curling around it.",
"Her feet remain near your cock, but the motion turns hesitant.",
"The footjob continues, only with less pressure and more hesitation.",
"Her legs tense as the motion starts feeling awkward to her."
],
"cont_footjob_keep_success": [
"Her feet press around your cock and rub it slowly.",
"{name} watches your shaft slide between her soles.",
"She flexes her toes when you twitch against her."
],
"cont_hj_guide_rhythm_failure": [
"Her hand leaves your cock and stays off it.",
"She pulls away from your hard cock.",
"{name} stops touching you before you can chase it.",
"Her grip tightens too much when you try to guide the stroke.",
"Your rhythm makes her hand less confident instead of smoother.",
"Her fingers stumble when you try to take control of the pace.",
"She keeps stroking, but her wrist turns stiff under your direction.",
"The guided handjob loses its natural pace in her fingers."
],
"cont_hj_guide_rhythm_success": [
"Her fingers tighten around your cock.",
"{name} watches your face while her hand works you.",
"Precum slicks her palm as she keeps stroking."
],
"cont_hj_keep_failure": [
"Her hand leaves your cock and stays off it.",
"She pulls away from your hard cock.",
"{name} stops touching you before you can chase it.",
"Her hand stays around you, but the stroke grows distracted and uneven.",
"She keeps touching your cock with less certainty than before.",
"Her grip stays around you, though the stroke starts losing warmth.",
"The handjob continues, only slower and more guarded in her grip.",
"Her fingers loosen slightly as discomfort slips into the motion."
],
"cont_hj_keep_success": [
"Her fingers tighten around your cock.",
"{name} watches your cock respond to her hand.",
"{name} watches your face while her hand works you."
],
"cont_hj_kiss_failure": [
"Her hand leaves your cock and stays off it.",
"She pulls away from your hard cock.",
"{name} stops touching you before you can chase it.",
"Her hand slows when you try to add a kiss to the stroke.",
"The kiss pulls her attention off the handjob instead of deepening it.",
"Her hand stays on you, but the added kiss makes her shoulders tighten.",
"She keeps her fingers around you, but her mouth does not meet the change easily.",
"Her grip turns uncertain as the kiss makes the moment too crowded."
],
"cont_hj_kiss_success": [
"Her fingers tighten around your cock.",
"{name} answers the kiss without letting her hand stop moving.",
"{name} watches your face while her hand works you."
],
"cont_hj_tease_failure": [
"Her hand leaves your cock and stays off it.",
"She pulls away from your hard cock.",
"{name} stops touching you before you can chase it.",
"The teasing stroke makes her hand pause when you expect it to play along.",
"Her fingers drag too lightly, then hesitate instead of finding a rhythm.",
"Her hand keeps moving, but the teasing leaves tension in her face.",
"The handjob stays in place, but the tease does not land the way you want.",
"Her grip loses confidence as the stroke turns stop-start."
],
"cont_hj_tease_success": [
"Her fingers tighten around your cock.",
"{name} becomes more aware of your cock in her hand with each word.",
"{name} watches your face while her hand works you."
],
"cont_hj_to_bj_failure": [
"Her lips part from your dick and stay away.",
"Her mouth leaves your cock and she keeps her face away.",
"{name} sits back before you can guide her again.",
"Her hand keeps control while her mouth stays away from your cock.",
"The shift from fingers to lips makes her face tighten before she moves closer.",
"She keeps her mouth away when the handjob starts turning toward oral.",
"She continues with her hand, but her mouth does not follow the escalation.",
"Her grip remains on you, refusing to trade the handjob for a blowjob."
],
"cont_hj_to_bj_success": [
"Her lips close around your cock while her hand keeps the base steady.",
"She lets her mouth take over without losing the rhythm her fingers built.",
"Her tongue meets the head of your cock as her hand slows underneath.",
"The first wet pull of her mouth makes your cock twitch against her fingers.",
"She keeps one hand on you while her lips start working."
],
"cont_rubbing_keep_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your fingers away from her pussy.",
"She catches your wrist before you can touch her again.",
"Her body stays under your hand, but the rubbing starts to make her tense.",
"The fabric still moves under your fingers, only with less welcome from her hips.",
"Her hips stop meeting your hand, and discomfort starts to show.",
"She lets the touch remain there while her thighs begin to guard against it.",
"The through-clothes friction loses its easy charge and turns awkward."
],
"cont_rubbing_keep_success": [
"Her thighs press around your hand as the fabric drags over her pussy.",
"{name}'s hips shift into the friction.",
"{name}'s hips follow the cloth-dragging friction."
],
"cont_rubbing_to_fingering_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your fingers away from her pussy.",
"She catches your wrist before you can touch her again.",
"Her thighs close when your hand starts searching past the fabric.",
"The rubbing was allowed, but the move toward bare fingers makes her tense.",
"She lets the rubbing continue, but closes off before your fingers can slip inside.",
"She catches the change before your fingers can slip inside.",
"Her body keeps the fabric between you, refusing the next step."
],
"cont_rubbing_to_fingering_success": [
"Her thighs tense when your fingers get past the fabric.",
"Her pussy is wetter than the rubbing made it look.",
"She goes still for a second as cloth gives way to direct touch.",
"Her slit tightens around your fingers after the teasing through fabric.",
"The direct contact makes her hips twitch harder than the rubbing did."
],
"cont_sex_cowgirl_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"She moves out from under you before it continues.",
"Her hips slow above you until the cowgirl rhythm turns strained.",
"She stays on your cock, but her thighs stop helping the ride.",
"Her thighs tense around you, and her riding loses confidence.",
"Her breath catches as the motion starts feeling less welcome.",
"The ride continues only shallowly, her body no longer giving itself to it."
],
"cont_sex_cowgirl_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"Her breath breaks each time you push deeper.",
"{name} controls the rhythm from above while you feel every drop of her weight."
],
"cont_sex_doggy_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"She moves out from under you before it continues.",
"Her back stiffens under your hands as the doggy rhythm starts to strain.",
"She stays bent forward, but her hips stop meeting your thrusts.",
"Her back tightens, and the doggy rhythm starts feeling harder for her to take.",
"The next thrusts make her brace instead of push back.",
"Her body remains in position, only tighter and less open to the pace."
],
"cont_sex_doggy_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"Her breath breaks each time you push deeper.",
"{name} braces herself and pushes back into the rhythm."
],
"cont_sex_missionary_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"She moves out from under you before it continues.",
"Her legs stay around you, but the face-to-face rhythm loses its softness.",
"She looks up at you with tension building under the next thrust.",
"Her body stays under you, but the missionary rhythm starts drawing tension out of her.",
"Her body stiffens beneath you while your cock stays inside.",
"The closeness remains, but her hips stop welcoming the motion."
],
"cont_sex_missionary_success": [
"Her pussy clenches around your cock.",
"{name} holds onto you as her pussy takes each thrust.",
"{name}'s hips meet your thrusts."
],
"cont_sex_reverse_cowgirl_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"She moves out from under you before it continues.",
"Her hips falter with her back to you, the reverse ride losing its rhythm.",
"She stays turned away, but her thighs tense around each motion.",
"Her hips hover over you, tense and uncertain, instead of settling into the change.",
"The angle stops feeling easy, and her body rides you more shallowly.",
"Her ass shifts against you, not enough to end it, but enough to show discomfort."
],
"cont_sex_reverse_cowgirl_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"{name} works her hips with her back turned, giving you the view and the rhythm.",
"Her breath breaks each time you push deeper."
],
"cont_sex_to_69_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"She pushes your shoulder lightly until you stop.",
"Her body tenses when you start breaking the sex apart for sixty-nine.",
"The fucking can continue, but the move toward mutual oral makes her hesitate.",
"Her body doesn't follow the turn toward sixty-nine.",
"She keeps you close, not ready to turn the position into mouths and angles.",
"Her legs hold the current position, resisting the twist toward sixty-nine."
],
"cont_sex_to_69_success": [
"She follows the change, still flushed from being fucked.",
"Her mouth lowers toward your cock while her thighs settle around your face.",
"Her wet pussy stays close to your tongue as the sex turns into mutual oral.",
"She catches the rhythm after a second, mouth and hips finding you again.",
"Her body stays eager even as penetration gives way to mouths."
],
"cont_sex_to_anal_failure": [
"{name} pulls forward, keeping your cock out of her ass.",
"Her hand presses against your hip until you stop.",
"Her ass tightens away from you instead of taking more.",
"Her body tightens the moment your angle starts drifting toward her ass.",
"The vaginal rhythm stays possible, but the anal switch makes her guard herself.",
"She stays with you, but gives no opening for the switch to anal.",
"She keeps you near her pussy and gives no ease toward her asshole.",
"Her hips tense against the change before your cock can leave the safer path."
],
"cont_sex_to_anal_success": [
"Her body tenses when your cock leaves her pussy and presses against her ass.",
"Her cunt is still wet around nothing when the new pressure reaches her asshole.",
"She braces herself as the sex moves from her pussy to her ass.",
"Her breathing changes when the tighter pressure replaces the wet slide.",
"She holds still, letting her ass adjust before you push farther."
],
"cont_sex_wall_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"She moves out from under you before it continues.",
"Her hands brace against the wall as the pressure stops feeling exciting.",
"She stays pinned there, but her body grows rigid under the next thrusts.",
"Her back presses hard to the wall as the rhythm starts feeling too much.",
"The wall keeps the shape of the position while her rhythm starts to fail.",
"Her legs tense around you, warning that the urgency is pushing too hard."
],
"cont_sex_wall_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"{name} braces against you and the wall as each thrust moves through her."
],
"cont_titfuck_keep_failure": [
"She pulls her chest away from your hands.",
"{name} covers her tits and steps back.",
"Her body turns aside before your touch can continue.",
"Her breasts remain around your cock, but the squeeze loses its confidence.",
"She keeps her chest close while her hands stop helping the rhythm.",
"Her body stays in the titfuck, but her shoulders tighten with reluctance.",
"The titfuck continues shallowly, her expression turning less certain.",
"Her tits stay pressed to you, but the motion no longer feels easy."
],
"cont_titfuck_keep_success": [
"Her tits squeeze around your cock.",
"Her breasts hold your shaft in a soft, tight channel.",
"{name} holds her chest tight and watches you slide through."
],
"cont_titfuck_let_work_failure": [
"She pulls her chest away from your hands.",
"{name} covers her tits and steps back.",
"Her body turns aside before your touch can continue.",
"She tries to take over with her breasts, but the rhythm slips out of her control.",
"Her chest stays around your cock while her hands hesitate over the pressure.",
"Her hands stay close, though the motion starts losing confidence.",
"The titfuck becomes awkward when you let her carry too much of it.",
"She keeps trying, but the squeeze turns uneven against your shaft."
],
"cont_titfuck_let_work_success": [
"Her tits squeeze around your cock.",
"Her nipples harden while your shaft moves between her breasts.",
"{name} holds her chest tight and watches you slide through.",
"{name} controls the rhythm with her chest while watching your restraint."
],
"cont_titfuck_lick_tip_failure": [
"She pulls her chest away from your hands.",
"{name} covers her tits and steps back.",
"Her body turns aside before your touch can continue.",
"Her tongue reaches the head once, then the added motion makes her hesitate.",
"The lick breaks the breast rhythm instead of making it hotter.",
"Her chest lifts under the titfuck, but the lick at the tip makes her tense.",
"She keeps your cock between her tits, but her mouth turns uncertain at the tip.",
"Her tongue flicks against you, then her chest loses the smooth squeeze."
],
"cont_titfuck_lick_tip_success": [
"Her tongue catches the head whenever her tits slide low enough.",
"Her tits squeeze around your cock.",
"{name} holds her chest tight and watches you slide through."
],
"cowgirl_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"{name} stops the act before it can begin.",
"She moves off your lap before your cock can enter her pussy.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"cowgirl_pleasure_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her hand stops your hip before your cock can get inside.",
"Her thighs close and stop the penetration.",
"She lifts her hips, refusing the depth from above.",
"Her thighs press together, shutting the sex down.",
"She pushes against your chest and keeps penetration from starting.",
"Her body locks up and she pulls away from your cock.",
"She stops riding and catches her breath."
],
"cowgirl_pleasure_success": [
"Her hips roll until your cock disappears inside her soaked cunt.",
"Her pussy clenches around your cock.",
"Her hips lift and drop over your cock.",
"She keeps riding until her pussy starts clenching in waves.",
"Her pussy swallows you each time she sinks down.",
"Her pussy slides down your shaft again and again.",
"Her thighs tighten as she rides you deeper.",
"Her body moves with greedy confidence over your cock.",
"Her thighs tense as she rides you."
],
"cowgirl_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"{name} steadies herself above you as her pussy takes you deeper.",
"Her wet cunt holds you tight.",
"Her breath breaks each time you push deeper."
],
"cunnilingus_to_analingus_failure": [
"She blocks her asshole completely.",
"She flinches and pulls her ass away.",
"Her cheeks clench and she shuts it down.",
"She pushes your head back up.",
"She twists away uncomfortably.",
"Her body tenses and stops you."
],
"cunnilingus_to_analingus_success": [
"Her thighs tense when your mouth leaves her pussy and moves lower.",
"Her breath catches as your tongue finds her ass instead of her clit.",
"She stays open, but the dirtier target makes her body go still for a second.",
"Her pussy is still wet when your mouth starts working her asshole.",
"The change makes her tense first, then soften when you keep it careful."
],
"cunnilingus_to_sex_failure": [
"She pushes your hips back firmly.",
"Her thighs press together tightly.",
"She closes her legs and blocks you.",
"She stays tense and stops penetration.",
"Her body rejects the switch before you enter.",
"She twists away and refuses entry."
],
"cunnilingus_to_sex_success": [
"Her thighs stay open when your cock replaces your mouth.",
"Her cunt clenches as the first push turns the licking into sex.",
"She is still trembling from your tongue when your cock starts to enter her.",
"Her wet slit parts easily after everything your mouth did to her.",
"The first thrust makes her hips jump, her body still oversensitive from your tongue."
],
"deep_kiss_failure": [
"She turns her mouth away before the kiss can deepen.",
"{name} keeps the kiss from becoming anything more.",
"Her hand comes up between you, stopping the deeper kiss.",
"She breaks the closeness before your mouth can push further.",
"The kiss stops short of what you wanted."
],
"deep_kiss_success": [
"Her fingers brush your shirt while the kiss deepens.",
"Her tongue meets yours, careful at first, then warmer.",
"She holds the kiss long enough to breathe harder.",
"She follows your mouth instead of pulling back.",
"Her mouth opens under yours, and her tongue meets yours.",
"She answers with breath and tension, deciding whether to let the kiss turn hungry.",
"{name}'s mouth opens under yours."
],
"deepthroat_pleasure_failure": [
"She pulls back with wet eyes, wiping spit from her lips before refusing to go deeper.",
"Her throat tightens too soon, and she stops with your cock still near the front of her mouth.",
"She jerks back from your cock and refuses to let the blowjob get any deeper.",
"She coughs and lifts off you, keeping the blowjob from reaching her throat.",
"One hand presses at your hip as she breaks the contact and takes a breath."
],
"deepthroat_pleasure_success": [
"Her lips stay stretched around you while one hand braces against your thigh.",
"Her throat closes around the extra depth, and her eyes water while she keeps herself on your cock.",
"Her lips stretch tight around the shaft.",
"She gags once, breathes through her nose, and lowers again with saliva running over your shaft.",
"Her cheeks hollow as she holds the deeper take for a second before pulling back for air."
],
"default_failure": [
"{name} does not give the attempt any room to grow.",
"She shuts it down before it can go further.",
"Her answer stays short, and the moment ends there.",
"She pulls back enough to make the refusal clear.",
"The attempt fails before it can become anything more."
],
"default_success": [
"Her body gives a small but readable sign of permission.",
"She stays with you, cautious but still engaged.",
"She lets the closeness remain instead of stepping back.",
"She keeps looking at you instead of turning away."
],
"demand_anal_sex_failure": [
"The order makes her tense, and she rejects it before anal becomes a real option.",
"She gives you a hard look and refuses the anal command.",
"{name} does not move. The demand only makes her close off.",
"Her expression hardens at the order.",
"She rejects the demand and gives you no room to push it."
],
"demand_anal_sex_success": [
"She goes still at the anal demand, then gives a small, careful nod.",
"{name} holds your gaze after the order, tense but willing to obey.",
"The command lands. She does not look relaxed, but she does not refuse.",
"She accepts the order with a sharp breath and a warning look.",
"She hesitates, then lets the anal demand stand."
],
"demand_blowjob_failure": [
"She rejects the blowjob demand without moving closer.",
"Her jaw sets at the order, and she refuses it.",
"{name} does not obey. The command dies there.",
"The demand makes her colder instead of compliant.",
"She shuts the order down before it can become anything physical."
],
"demand_blowjob_success": [
"She pauses at the blowjob demand, then decides to obey.",
"{name} looks at you after the order, tense but willing.",
"The command lands, and she lets the silence confirm it.",
"She accepts the order with a controlled look.",
"She does not move yet, but the refusal never comes."
],
"demand_cunnilingus_failure": [
"She rejects the command to open for your mouth.",
"Her thighs stay closed as she refuses the order.",
"{name} does not obey. The demand goes nowhere.",
"The order makes her pull back emotionally before anything starts.",
"She refuses the command and keeps the boundary clear."
],
"demand_cunnilingus_success": [
"She hears the order and lets it stand, tense but interested.",
"{name} gives a small nod after the cunnilingus demand.",
"The command makes her breath catch before she accepts it.",
"She accepts the order, but her look tells you not to rush.",
"She does not spread yet, but she does not refuse the command."
],
"demand_footjob_failure": [
"She rejects the footjob command with a hard look.",
"The demand gets no obedience from her.",
"She refuses the order before the footjob can start.",
"Her expression makes it clear that commanding her feet did not work.",
"She does not follow the command."
],
"demand_footjob_success": [
"She accepts the footjob command with a tense breath.",
"The order lands, and she gives you a look that says she heard it.",
"Her jaw tightens, but she does not refuse.",
"{name} lets the command stand and prepares to obey.",
"She gives the smallest nod after the order."
],
"demand_handjob_failure": [
"She rejects the handjob demand without reaching for you.",
"Her hands stay still as she refuses the order.",
"{name} does not obey. The command only makes her colder.",
"She shuts the demand down before it becomes touch.",
"She keeps her hands to herself and refuses the order."
],
"demand_handjob_success": [
"She pauses at the handjob demand, then lets the order stand.",
"{name} gives you a controlled look and decides to obey.",
"The command reaches her. She does not smile, but she does not refuse.",
"She accepts the order with a tense breath.",
"Her hands have not moved yet, but her answer is yes."
],
"demand_sex_failure": [
"She rejects the sex demand before it can become physical.",
"Her expression hardens at the order.",
"{name} refuses the command and gives sex no opening.",
"The demand does not move her. It only sharpens the refusal.",
"She closes off at the command."
],
"demand_sex_success": [
"She goes still at the sex demand, then lets the order stand.",
"{name} holds your gaze after the command, tense but willing.",
"The demand lands, and she accepts it without softening.",
"She gives a small nod after the order.",
"Her breath changes when she decides to obey."
],
"demand_sixty_nine_failure": [
"She rejects the command before the position changes.",
"The sixty-nine demand makes her pull back.",
"{name} does not obey. The order ends there.",
"She refuses the command without giving either of you an opening.",
"The demand fails before anything physical starts."
],
"demand_sixty_nine_success": [
"She accepts the sixty-nine command, but her look warns you not to be selfish.",
"{name} lets the order stand after a tense pause.",
"The command reaches her, and she decides to obey.",
"She gives you a measured nod after the demand.",
"She accepts, but only because both of you will be involved."
],
"demand_titfuck_failure": [
"She rejects the titfuck demand immediately.",
"Her expression hardens at the command.",
"The order gets no obedience from her.",
"She refuses before the titfuck can become physical.",
"She keeps the boundary clear and rejects the command."
],
"demand_titfuck_success": [
"She accepts the titfuck command with a tense, focused look.",
"{name} hears the order and decides to obey.",
"The demand lands. She does not refuse, but she does not soften either.",
"She gives a small nod after the command.",
"She lets the order stand, watching your reaction."
],
"dirty_praise_failure": [
"She hears the dirty praise and refuses the control in it.",
"{name} does not let the praise become permission.",
"Her expression closes around the dirty compliment.",
"She rejects the praise before it can pull her in.",
"The line gets no obedience from her."
],
"dirty_praise_success": [
"{name} looks back at you, surprised by how direct the compliment was.",
"She glances down at herself, then meets your eyes again.",
"The compliment catches her off guard, and she takes a second before answering.",
"Her lips part, and she looks away for a second before facing you again.",
"She keeps her body exposed and looks back at you."
],
"doggy_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"{name} stops the act before it can begin.",
"She shifts forward before your cock can enter her pussy.",
"She braces one hand back and makes the angle harder to keep.",
"She moves out of position before you can continue."
],
"doggy_pleasure_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her hand stops your hip before your cock can get inside.",
"Her thighs close and stop the penetration.",
"Her body tightens and refuses the deeper thrusts.",
"Her body locks up and she pulls away from your cock.",
"Her thighs press together, shutting the sex down.",
"She moves her pelvis away and breaks the line-up.",
"She looks back with a warning in her expression."
],
"doggy_pleasure_success": [
"Her pussy clenches around your cock.",
"Her ass pushes back while her wet cunt takes you from behind.",
"Wet sounds follow each thrust into her cunt.",
"She pushes back onto your cock with each thrust.",
"Her fingers grip the surface under her as you fuck her from behind.",
"Her body rocks forward with every thrust, then pushes back for more.",
"Her thighs shake while you drive into her.",
"Her hips stay lifted, inviting the next deep stroke.",
"Her back dips and her pussy takes you deeper."
],
"doggy_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"Her wet cunt holds you tight.",
"Her breath breaks each time you push deeper.",
"{name} braces herself as the position turns rougher and more exposed."
],
"end_orgasm_her_1": [
"Her thighs tremble once as the orgasm fades.",
"Her pussy gives a few last little twitches.",
"She sits in the afterglow, warm and visibly satisfied.",
"Her body relaxes after a strong orgasm.",
"Her cheeks stay flushed with lingering pleasure.",
"She breathes slowly, still wearing the pleasure on her face.",
"She appears relaxed, fulfilled, and lightly sensitive.",
"She keeps her legs loose, still recovering from the orgasm."
],
"end_orgasm_her_2": [
"She presses her tits against you contentedly.",
"Her pussy stays wet and sensitive after the second climax.",
"A wicked little smile lingers on her lips.",
"She looks loose, flushed, and openly pleased.",
"She stays close with a deeply satisfied expression.",
"Her body is relaxed and glowing from the orgasms.",
"A greedy little smile lingers on her face.",
"Her breathing is still a bit ragged.",
"Her skin is warm and flushed."
],
"end_orgasm_her_3": [
"She pants softly with glassy eyes.",
"She seems to have lost some of her voice.",
"Her pussy keeps twitching through the last aftershocks.",
"Her body jerks through another hard aftershock.",
"She looks dazed, oversensitive, and deeply satisfied.",
"Her legs are still shaking slightly.",
"She looks beautifully wrecked and soaked.",
"Her whole body is flushed and trembling."
],
"end_orgasm_her_4": [
"Her voice is hoarse from all the moaning.",
"Her pussy is visibly dripping and sensitive.",
"She is shaking slightly in ecstatic disbelief.",
"She can barely hold herself together.",
"She appears completely overwhelmed.",
"Her body is still convulsing lightly.",
"She stares at the ceiling in bliss.",
"She looks drunk on pleasure."
],
"end_orgasm_her_5": [
"Her eyes look slightly unfocused.",
"She is in pure bliss, soft and spent.",
"She lies there glowing, too sensitive to move much.",
"She has turned into a quivering, wet puddle.",
"She is practically melting where she lies.",
"Her body is covered in sweat and bliss.",
"She lies limp and deeply satisfied.",
"She can barely form words anymore."
],
"end_orgasm_her_6": [
"Her eyes are unfocused and distant.",
"She looks like she is in absolute heaven.",
"She is completely gone in the afterglow, trembling at every touch.",
"She has been turned into a shaking, orgasm-drunk mess.",
"The pleasure has completely broken through her composure.",
"She is lost in a deep ecstatic state.",
"She twitches and stays oversensitive.",
"She looks ruined in the best possible way."
],
"end_orgasm_none_her_many_you": [
"She licks her lips, but her eyes show growing annoyance.",
"Her hips twitch once, reminding you she never came.",
"Her patience visibly thins when she realizes how one-sided the encounter became.",
"She looks at the mess and does not bother hiding her disappointment.",
"She is still untouched and frustrated after you got everything.",
"Her expression darkens as she understands she got nothing.",
"Her body remains wound tight, left completely denied."
],
"end_orgasm_none_her_one_you": [
"Her thighs stay slightly parted, still aching with need.",
"Her eyes narrow with clear dissatisfaction.",
"Her pussy still throbs visibly, left completely denied.",
"She looks at you with a disappointed little smirk.",
"She bites her lip, obviously annoyed she never got there.",
"She lets out a soft huff, unhappy with how the encounter ended.",
"Her breathing remains heavy with unmet desire."
],
"end_orgasm_you_0": [
"Her eyes flick to your cock, still waiting.",
"She studies your still-hard cock, aware you held back.",
"Her eyes drift down to your unsatisfied erection.",
"She raises an eyebrow when she realizes you did not cum.",
"She looks mildly surprised you held back.",
"Her gaze lingers on your body, noting that you never came.",
"She tilts her head, curious why you did not finish.",
"She becomes aware you never came during the encounter.",
"She notices your restraint with surprise and interest."
],
"end_orgasm_you_0_guilt": [
"Her eyes soften with real guilt when she realizes you held back.",
"A guilty expression crosses her face as she sees your unsatisfied cock.",
"She reaches for you with guilty, apologetic hands.",
"Guilt flashes in her eyes as she realizes how selfish she was.",
"She notices you never finished and looks genuinely guilty.",
"She whispers an apology for leaving you hanging.",
"Her gaze drops to your still-hard cock and her face changes.",
"She stays close, clearly aware she left you unfinished."
],
"end_orgasm_you_1": [
"Her eyes sparkle with satisfaction.",
"A pleased little smile appears on her face.",
"She presses her body against yours.",
"She stays close as you recover.",
"She gently strokes your chest.",
"She watches you catch your breath.",
"Her posture softens now that you are spent.",
"She looks satisfied with how you finished."
],
"end_orgasm_you_2": [
"She licks her lips, obviously enjoying the result.",
"She smiles at how much fun both of you had.",
"Two loads later, she is wearing a very satisfied grin.",
"Her expression is proud after draining you twice.",
"She teases you lightly about the second time.",
"Two orgasms from you leave her looking smug and happy.",
"She stays close while you recover from the second orgasm.",
"Her eyes keep returning to the evidence of how much you enjoyed it."
],
"end_orgasm_you_3": [
"Her eyes stay wide with lust while you recover.",
"She looks stunned by the raw chemistry between you.",
"She stays close, breathless from how intense it got.",
"She is impressed by your stamina after you came so much.",
"She cannot hide how turned on she is that you came multiple times.",
"She looks satisfied, almost smug, after pushing you that far.",
"She keeps looking at you like she is replaying the encounter.",
"Her breathing stays uneven while the afterglow settles."
],
"end_orgasm_you_3_messy": [
"Her eyes are wide with lust, her body covered in cum.",
"She licks her lips, obviously enjoying what you left on her.",
"She looks stunned by the raw chemistry between you.",
"She stays close, messy and breathless from how intense it got.",
"She cannot hide how turned on she is that you came multiple times.",
"She is still covered in your cum as she smiles in satisfaction.",
"The sheer amount of cum still on her leaves her visibly aroused.",
"She looks satisfied, almost smug, while the mess dries on her skin.",
"She traces a finger through the sticky mess, looking very pleased."
],
"finger_ass_failure": [
"{name} pulls her ass away before you can continue.",
"{name} moves your hand away before the touch can settle.",
"Her hips jerk away before your finger can enter her asshole.",
"She interrupts the contact before it becomes familiar.",
"She jerks her hips away and blocks your hand with her own.",
"She shifts out of reach and keeps the line there."
],
"finger_ass_success": [
"{name}'s ass tightens around your finger before she lets any of it in.",
"She breathes carefully while your finger works against her tight little asshole.",
"{name} keeps still while your finger tests her ass inch by inch.",
"Her hips tense around the anal touch, making you slow down and earn it.",
"Her ass gives a little around your finger, then tightens again."
],
"cont_anal_finger_keep_failure": [
"Her ass tightens hard around your finger, and she tells you to stop moving.",
"{name} shifts forward until your finger is barely inside her.",
"She catches your wrist when the motion gets too deep.",
"Her hips stop following your hand and her body goes tense.",
"She presses back against your wrist to slow the movement."
],
"cont_anal_finger_keep_success": [
"Her ass tightens around your finger, then relaxes as you keep the same pace.",
"{name} pushes back a little and lets your finger move deeper.",
"Her hips start following the slow movement of your hand.",
"She holds still while your finger works inside her ass.",
"Her asshole gives around each careful stroke."
],
"cont_anal_finger_to_fingering_failure": [
"She closes her thighs and keeps your other hand away from her pussy.",
"{name} catches your wrist before you can change hands.",
"She keeps her hips turned away when your hand moves toward her slit.",
"Her body tightens at the change, and she tells you to stay where you are.",
"She blocks the switch and keeps your hand at her ass."
],
"cont_anal_finger_to_fingering_success": [
"Her ass relaxes when your finger leaves, then her thighs open for your other hand.",
"{name}'s hips shift as the pressure moves from her ass to her pussy.",
"Her cunt tightens around the first stroke from your other hand.",
"She spreads her legs wider when your fingers move into her pussy.",
"Her hips lift into your hand once your fingers enter her cunt."
],
"cont_anal_finger_to_analingus_failure": [
"She pulls her hips away when your mouth moves closer.",
"{name} reaches back and stops you before your tongue touches her.",
"Her body tightens as soon as your face moves between her legs.",
"She shifts forward and keeps your mouth away from her ass.",
"She blocks the change and tells you to keep using your hand."
],
"cont_anal_finger_to_analingus_success": [
"Her ass tenses when your finger leaves and your tongue touches her.",
"She holds still for the first lick, then pushes back a little.",
"Her asshole twitches under your tongue.",
"Her hips lift enough to give your mouth more room.",
"{name} spreads herself wider when your tongue starts circling her ass."
],
"finger_pussy_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your hand away before the touch can settle.",
"Her thighs close before your fingers can enter her pussy.",
"She interrupts the contact before it becomes familiar.",
"She catches your wrist before your fingers can enter her pussy.",
"She shifts out of reach and keeps the line there."
],
"finger_pussy_success": [
"{name} opens to your fingers as they find her pussy and start working inside.",
"Her hips twitch against your hand when your fingers curl inside her.",
"She breathes through the first push of your fingers into her wet slit.",
"{name} lets your fingers move inside her pussy, tense but responsive.",
"Her inner walls tighten around your fingers as you finger her carefully."
],
"fingering_pleasure_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} closes her thighs before your fingers can keep working her pussy.",
"Her hand catches your wrist and pulls it away from her slit.",
"{name} shifts her hips away, cutting off access to her pussy.",
"She stops the fingering before your fingers can find another rhythm.",
"Her body tightens shut and refuses your fingers."
],
"fingering_pleasure_success": [
"{name}'s cunt tightens around your fingers as her hips follow your hand.",
"Her pussy tightens around your fingers.",
"Her body responds to the exact kind of contact.",
"She reacts to the contact instead of the idea of it.",
"The pleasure shows in a small, physical answer."
],
"fingering_tease_failure": [
"Her thighs close around your hand and keep it from going farther.",
"She stops your hand when the teasing turns frustrating.",
"Her body closes off, and the attempt ends.",
"She refuses the change before it can build.",
"She backs away and gives you nothing more."
],
"fingering_tease_success": [
"Her pussy tightens around your fingers.",
"Her thighs twitch around your hand.",
"Her pussy gets wetter against your fingers.",
"Her hips lift to meet your hand.",
"She tries to follow the teasing motion and loses a little composure."
],
"flirt_bold_failure": [
"The bold line lands badly, and her expression shuts it down.",
"{name} does not reward the nerve behind it.",
"She gives you a flat look instead of rising to it.",
"Her posture stays closed, cutting off the stronger flirt.",
"She lets the silence answer before you can push it further."
],
"flirt_bold_success": [
"She presses her lips together, but a smile still shows.",
"She measures the boldness before deciding whether to reward it.",
"She leans into the contact by a small, honest amount."
],
"flirt_failure": [
"She moves your hand away and steps back.",
"{name} stiffens and does not lean back in.",
"The flirt arrives before the mood can hold it.",
"She steps around the suggestion and leaves it behind.",
"Her expression cools at the timing.",
"The silence after the line does most of the refusing."
],
"flirt_soft_failure": [
"She hears the flirt and gives you nothing to build on.",
"{name} lets the line fall flat instead of smiling back.",
"Her expression cools, and the flirt dies there.",
"She keeps the conversation plain.",
"The attempt comes too early, and she does not help it along."
],
"flirt_soft_success": [
"She catches the flirt and does not shut it down.",
"{name} stays in the conversation a little longer than before.",
"Her mouth almost curves before she hides it.",
"She gives the line enough room to count.",
"The flirt gets a small reaction instead of a refusal."
],
"flirt_success": [
"Her mouth moves like she almost stopped it in time.",
"Her eyes stay on you longer than the line required.",
"She catches the suggestion and lets it hang there.",
"She does not step back from the flirt."
],
"footjob_pleasure_failure": [
"She pulls her feet away and plants them out of reach, leaving your cock untouched.",
"Her feet leave your lap before the contact can turn into a footjob.",
"She blocks your hand from reaching her ankle and moves both feet aside.",
"{name} tucks her legs back and keeps her soles away from you.",
"Her foot leaves your shaft, ending the stroke at once."
],
"footjob_pleasure_success": [
"Her soles tighten around your cock, and her toes flex when precum starts to slick the head.",
"She keeps her ankles close and rubs faster when your cock twitches between her soles.",
"She presses the arch of one foot under the head of your cock and drags it back down with a firmer stroke.",
"{name} watches your shaft move between her feet, adjusting her legs when you get harder against her skin.",
"A small smile crosses her face as she feels you throb against her feet."
],
"gaze_ass_failure": [
"She catches the look and turns enough to make the stare obvious.",
"{name} gives you a flat look over her shoulder.",
"Her posture changes, closing off the view you were taking.",
"She notices your eyes and does not play along.",
"The stare lasts too long, and she shuts it down."
],
"gaze_ass_success": [
"She notices your eyes on her ass and lets you keep looking for a second.",
"She notices the direction of your gaze and lets the charged pause answer for her.",
"She leans into the contact by a small, honest amount."
],
"gaze_chest_failure": [
"Her eyes snap back to your face, unimpressed.",
"{name} catches where you are looking and makes the mistake obvious.",
"She angles her body away from the stare.",
"Her expression hardens when your eyes stay too low.",
"She cuts the look short before it can become comfortable."
],
"gaze_chest_success": [
"{name} catches the look and lets the silence stretch just long enough to judge it.",
"She catches the look and lets the silence stretch just long enough to judge it.",
"She leans into the contact by a small, honest amount."
],
"gaze_failure": [
"She moves your hand away and steps back.",
"{name} stiffens and does not lean back in.",
"She pulls back and gives you a flat look.",
"Her posture sharpens, making it clear the look was too much.",
"She redirects your attention before it can become bolder."
],
"gaze_legs_failure": [
"She notices your eyes drifting and pulls the moment back to her face.",
"{name} shifts her stance, making the stare feel too obvious.",
"Her expression cools when your attention stays on her legs.",
"She does not let the look become a compliment.",
"The glance turns clumsy, and she cuts it off."
],
"gaze_legs_success": [
"{name} notices the attention on her legs and lets it stay for a second.",
"She shifts under the look, aware of exactly what you are admiring.",
"Her stance changes just enough to show she noticed.",
"She catches the glance and does not shut it down.",
"The look lasts long enough to feel intentional."
],
"gaze_success": [
"She catches the look and lets you keep it for a second.",
"{name} notices your eyes and does not immediately shut it down.",
"Her body language changes under the attention.",
"She lets the stare last just long enough to be clear.",
"She sees where your attention is and leaves the moment open."
],
"gentle_command_failure": [
"She hears the command and does not follow it.",
"{name} keeps stillness, movement, and attention under her own control.",
"Her expression cools as the order fails.",
"She gives you no compliance to build on.",
"The command stops at her refusal."
],
"gentle_command_success": [
"{name} tests the command, then allows the smallest amount of compliance.",
"Her posture changes by a fraction, but it is enough to count.",
"She lets the instruction move her before she fully admits it.",
"She hesitates, then does what you told her.",
"She gives you a small nod and does what you asked."
],
"grind_together_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your hand away before the touch can settle.",
"She shifts her hips back and leaves space between your bodies.",
"She interrupts the contact before it becomes familiar.",
"She turns her hips aside and breaks contact between your bodies.",
"She shifts out of reach and keeps the line there."
],
"grind_together_success": [
"Her thighs press around your hand as the fabric drags over her pussy.",
"Her breath catches when your fingers rub her through her clothes.",
"{name}'s hips shift into the friction.",
"She rocks against you through the fabric, turning the grind into a shared rhythm.",
"Her thighs adjust around the contact, letting the clothed grind stay deliberate.",
"{name} presses back into the grind, letting the clothed friction build between you."
],
"guide_position_failure": [
"She does not let you guide her position.",
"{name} stops before your instruction can place her.",
"Her posture stays her own.",
"She refuses the direction of your hand and voice.",
"The command fails before she moves for you."
],
"guide_position_success": [
"{name} follows the instruction and watches how you react.",
"Her posture changes by a fraction, but it is enough to count.",
"She lets the instruction move her before she fully admits it.",
"She follows your hand and settles into the position you showed her.",
"She moves where you guide her and settles into place."
],
"handjob_pleasure_failure": [
"Her hand leaves your cock and stays off it.",
"{name} lets go of your cock before her hand can keep stroking.",
"Her fingers leave your dick and refuse to find the rhythm again.",
"She pulls her hand back, ending the handjob immediately.",
"{name} releases your shaft and keeps her hand at her side.",
"The stroke stops when she decides not to touch your cock anymore."
],
"handjob_pleasure_success": [
"Her fingers tighten around your cock.",
"Her grip adjusts around your shaft as she watches what makes you react.",
"Her body responds to the exact kind of contact.",
"She reacts to the contact instead of the idea of it.",
"The pleasure shows in a small, physical answer."
],
"handjob_to_blowjob_failure": [
"She teases but won't use her mouth.",
"She stays stuck on hand only.",
"Her lips stay closed tight.",
"The switch dies in her hand.",
"She keeps stroking and refuses to suck.",
"She shakes her head and rejects it.",
"She coughs once and backs off before taking you again.",
"She pulls her head back quickly."
],
"handjob_to_blowjob_success": [
"Her lips close around your cock while her hand keeps the base steady.",
"She lets her mouth take over without losing the rhythm her fingers built.",
"Her tongue meets the head of your cock as her hand slows underneath.",
"The first wet pull of her mouth makes your cock twitch against her fingers.",
"She keeps one hand on you while her lips start working."
],
"hold_eye_contact_command_failure": [
"She breaks eye contact instead of obeying.",
"{name} refuses to keep her eyes on yours.",
"Her gaze moves away from the order.",
"She hears the command and does not give you the stare.",
"The order fails before the eye contact can hold."
],
"hold_eye_contact_command_success": [
"{name} follows the instruction and watches how you react.",
"{name} holds the stare even as the order changes the air between you.",
"Her posture changes by a fraction, but it is enough to count.",
"She lets the instruction move her before she fully admits it.",
"Her eyes flick away once, then return to yours and stay there.",
"She keeps her eyes on yours and waits for your next move."
],
"hug_her_failure": [
"She steps back before the hug can close around her.",
"{name} keeps enough distance that the hug never starts.",
"Her shoulders turn away from the attempt.",
"She stops the closeness before your arms can settle.",
"The hug dies before it becomes contact."
],
"hug_her_success": [
"{name} stiffens first, then decides whether the hold feels safe enough to keep.",
"She stiffens first, then decides whether the hold feels safe enough to keep.",
"She leans into the contact by a small, honest amount."
],
"inquire_jobs_failure": [
"She gives you no useful lead on work.",
"{name} keeps the work lead to herself.",
"Her answer stays too vague to help.",
"She does not give you enough to follow up on.",
"The job question goes nowhere."
],
"inquire_jobs_success": [
"{name} gives the topic enough attention to answer properly.",
"{name} considers whether your request sounds useful enough to answer.",
"She considers whether your request sounds useful enough to answer."
],
"inquire_training_failure": [
"She gives you no useful lead on training.",
"{name} keeps the training advice to herself.",
"Her answer stays too short to unlock anything useful.",
"She does not trust the question enough to help yet.",
"The training question gets closed down fast."
],
"inquire_training_success": [
"{name} gives the topic enough attention to answer properly.",
"{name} looks for discipline in the way you ask before giving you anything useful.",
"She looks for discipline in the way you ask before giving you anything useful."
],
"introduce_dominant_failure": [
"The stronger introduction lands badly, and she stiffens.",
"{name} does not give the dominant opening any obedience.",
"Her expression closes before the introduction can recover.",
"She meets the force in your voice and refuses it.",
"The attempt at control gets nothing back."
],
"introduce_dominant_success": [
"{name} catches the confidence in your voice and answers it instead of brushing it off.",
"Her eyes stay on yours, wary but interested enough to let the stronger opening stand.",
"{name} gives the topic enough attention to answer properly.",
"Her shoulders loosen as she keeps talking.",
"She measures you for a second, then gives you a reply that sounds like a test.",
"The confidence gets her attention. She replies like she wants to see whether you can keep it."
],
"introduce_failure": [
"The introduction lands awkwardly, and she does not help it recover.",
"{name} gives you a short look and keeps her distance.",
"Her answer stays polite enough to end the exchange.",
"She does not give the introduction any momentum.",
"The first impression fails to open anything."
],
"introduce_success": [
"{name} lets the greeting become a conversation instead of a passing interruption.",
"{name} gives the topic enough attention to answer properly.",
"{name} gives you her name and keeps looking at you instead of turning away.",
"Her expression stays guarded, but she gives you enough of an answer to continue.",
"She takes your introduction seriously enough to reply with more than politeness."
],
"invite_coffee_failure": [
"{name} gives a short answer and stops feeding the conversation.",
"She looks away before you can ask more.",
"Her posture closes, polite but clear.",
"{name} keeps the boundary firm around the invitation.",
"She does not let the offer become a negotiation.",
"The request closes before it can gain momentum.",
"She steps back from the implication in the ask.",
"Her refusal is calm, but final."
],
"invite_coffee_success": [
"A small smile slips through before she reins it in.",
"She keeps eye contact while she answers.",
"She considers it, then gives you a time that might actually work.",
"Her shoulders loosen as she keeps talking.",
"{name} considers the invitation as a small public step, not a promise of more.",
"Her answer comes after a real pause, not automatic politeness.",
"She lets the idea exist long enough to become possible.",
"The invitation lands more cleanly than she expected."
],
"invite_gallery_failure": [
"{name} gives a short answer and stops feeding the conversation.",
"She looks away before you can ask more.",
"Her posture closes, polite but clear.",
"{name} keeps the boundary firm around the invitation.",
"She does not let the offer become a negotiation.",
"The request closes before it can gain momentum.",
"She steps back from the implication in the ask.",
"Her refusal is calm, but final."
],
"invite_gallery_success": [
"A small smile slips through before she reins it in.",
"She keeps eye contact while she answers.",
"{name} gives the topic enough attention to answer properly.",
"Her shoulders loosen as she keeps talking.",
"{name} reacts to the fact that the invitation has shape, place, and taste.",
"Her answer comes after a real pause, not automatic politeness.",
"She lets the idea exist long enough to become possible.",
"The invitation lands more cleanly than she expected."
],
"invite_meal_failure": [
"The home part makes her hesitate too long.",
"Her interest fades when the meal still means your place.",
"{name} gives a short answer and stops feeding the conversation.",
"She considers it, but her posture stays closed.",
"She shakes her head before the invite can go further.",
"She keeps her answer polite, but firm.",
"She pulls back before it can go further.",
"The offer does not get past her caution."
],
"invite_meal_success": [
"The cooking part earns a small, approving look.",
"Her guard lowers when she hears you mean an actual meal.",
"Her expression softens when you mention doing the cooking.",
"She pauses, then nods with a cautious smile.",
"She looks at you for a second, weighs the offer, then agrees.",
"She seems more curious than wary now.",
"She lets out a small laugh and agrees to see what you can make.",
"Her body gives a clear response."
],
"invite_private_movie_failure": [
"{name} gives a short answer and stops feeding the conversation.",
"She looks away before you can ask more.",
"Her posture closes, polite but clear.",
"{name} keeps the boundary firm around the invitation.",
"She does not let the offer become a negotiation.",
"The request closes before it can gain momentum.",
"She steps back from the implication in the ask.",
"Her refusal is calm, but final."
],
"invite_private_movie_success": [
"A small smile slips through before she reins it in.",
"She keeps eye contact while she answers.",
"{name} gives the topic enough attention to answer properly.",
"Her shoulders loosen as she keeps talking.",
"She adds a detail she did not have to share.",
"{name} understands the cover story and judges whether she wants the room that comes with it.",
"Her answer comes after a real pause, not automatic politeness.",
"She lets the idea exist long enough to become possible."
],
"invite_room_failure": [
"{name} gives a short answer and stops feeding the conversation.",
"She looks away before you can ask more.",
"Her posture closes, polite but clear.",
"{name} keeps the boundary firm around the invitation.",
"She does not let the offer become a negotiation.",
"The request closes before it can gain momentum.",
"She steps back from the implication in the ask.",
"Her refusal is calm, but final."
],
"invite_room_success": [
"A small smile slips through before she reins it in.",
"She keeps eye contact while she answers.",
"{name} gives the topic enough attention to answer properly.",
"Her shoulders loosen as she keeps talking.",
"She adds a detail she did not have to share.",
"{name} studies the invitation carefully because a private room changes the weight of every answer.",
"Her answer comes after a real pause, not automatic politeness.",
"She lets the idea exist long enough to become possible."
],
"invite_workout_failure": [
"{name} gives a short answer and stops feeding the conversation.",
"She looks away before you can ask more.",
"Her posture closes, polite but clear.",
"{name} keeps the boundary firm around the invitation.",
"She does not let the offer become a negotiation.",
"She shakes her head and gives the training invite no opening.",
"She steps back from the implication in the ask.",
"Her refusal is calm, but final."
],
"invite_workout_success": [
"A small smile slips through before she reins it in.",
"She keeps eye contact while she answers.",
"{name} gives the topic enough attention to answer properly.",
"Her shoulders loosen as she keeps talking.",
"{name} weighs the invitation against the discipline it would actually require.",
"Her answer comes after a real pause, not automatic politeness.",
"She lets the idea exist long enough to become possible.",
"The invitation lands more cleanly than she expected."
],
"kiss_cheek_failure": [
"She turns her cheek away before the kiss lands.",
"{name} leans back from the small kiss.",
"Her expression closes before the gesture can feel sweet.",
"She stops the cheek kiss with a small shift away.",
"The kiss misses because she does not let it happen."
],
"kiss_cheek_success": [
"{name} holds still for the kiss, then looks back at you to see if you will try for more.",
"Her cheek warms under your lips before she turns her face back toward you.",
"She lets the small kiss land, guarded but not offended.",
"Her fingers touch the spot you kissed before her hand drops again."
],
"kiss_lips_failure": [
"She turns away before your mouth reaches hers.",
"{name} stops the kiss before it lands.",
"Her hand comes up, keeping the distance between your faces.",
"She does not let the attempt become a kiss.",
"The closeness breaks before your lips touch."
],
"kiss_lips_success": [
"Her eyes stay on your mouth for a second.",
"{name} kisses back after the first soft second.",
"Her mouth stays on yours a little longer than expected.",
"Her breath catches against your lips.",
"She does not step away when the kiss ends.",
"{name} meets the kiss for a brief charged second before deciding how much to give back.",
"She meets the kiss for a brief charged second before deciding how much to give back."
],
"lick_pussy_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"{name} stops the act before it can begin.",
"Her thighs close and push your mouth away from her pussy.",
"She refuses to let your mouth settle between her thighs.",
"She moves out of position before you can continue."
],
"lick_pussy_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"{name}'s thighs frame your face as your tongue starts working her.",
"{name}'s hips lift toward your mouth.",
"Her pussy gets wetter against your tongue.",
"She breathes harder each time your mouth returns to her clit.",
"Her fingers tighten in your hair."
],
"look_eyes_failure": [
"She breaks the eye contact before it can turn charged.",
"{name} does not let the silence stretch between you.",
"Her gaze slips away, leaving the attempt flat.",
"She meets your eyes once, then refuses the stare-down.",
"The look lasts too long, and she steps out of it."
],
"look_eyes_success": [
"{name} keeps the look for a moment.",
"She holds your gaze and waits to see what you do with it.",
"Her eyes stay on yours a little longer than casual.",
"She lets the silence stretch without looking away.",
"The eye contact holds long enough to change the mood."
],
"make_her_hold_still_failure": [
"She moves before the command can settle.",
"{name} refuses to hold still for you.",
"Her body shifts out of the instruction.",
"She keeps control of where she stands.",
"The order fails before she gives you stillness."
],
"make_her_hold_still_success": [
"{name} freezes for a beat, caught between resistance and the pull of being directed.",
"Her posture changes by a fraction, but it is enough to count.",
"She lets the instruction move her before she fully admits it.",
"Her shoulders tense, but she keeps her body where you put it.",
"She takes a breath and keeps still for you."
],
"massage_ass_failure": [
"Her body tightens, refusing the direction of the massage.",
"{name} shifts away from your hands.",
"{name} stops the movement before your hands settle there.",
"Her shoulders tense instead of loosening.",
"She catches your wrist and resets the boundary.",
"She moves the touch away before it becomes familiar."
],
"massage_ass_success": [
"Her muscles soften under your hands.",
"{name}'s breathing slows while your hands work.",
"{name} shifts under your palms as the touch claims more of her body.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_back_failure": [
"Her body tightens, refusing the direction of the massage.",
"{name} shifts away from your hands.",
"{name} stops the movement before your hands settle there.",
"Her shoulders tense instead of loosening.",
"She catches your wrist and resets the boundary.",
"She moves the touch away before it becomes familiar."
],
"massage_back_success": [
"Her muscles soften under your hands.",
"{name}'s breathing slows while your hands work.",
"{name} relaxes by degrees, her body giving more trust than her mouth does.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_breasts_failure": [
"Her body tightens, refusing the direction of the massage.",
"She pulls her chest away from your hands.",
"{name} covers her tits and steps back.",
"{name} stops the movement before your hands settle there.",
"She catches your wrist and resets the boundary.",
"She moves the touch away before it becomes familiar."
],
"massage_breasts_success": [
"{name} breathes in sharply as the massage becomes openly sexual.",
"{name}'s chest lifts into your hands.",
"Her nipples harden under your attention.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_failure": [
"She catches your wrist before the massage turns into something worse.",
"She pulls back before it can go further.",
"Her body closes off, and the attempt ends.",
"She backs away and gives you nothing more.",
"Her breathing turns sharper, warning you to reset."
],
"massage_inner_thighs_failure": [
"Her body tightens, refusing the direction of the massage.",
"{name} shifts away from your hands.",
"{name} stops the movement before your hands settle there.",
"Her shoulders tense instead of loosening.",
"She catches your wrist and resets the boundary.",
"She moves the touch away before it becomes familiar."
],
"massage_inner_thighs_success": [
"{name}'s thighs tense around your hands, her body aware of how close you are.",
"Her muscles soften under your hands.",
"{name}'s breathing slows while your hands work.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_legs_failure": [
"Her body tightens, refusing the direction of the massage.",
"{name} shifts away from your hands.",
"{name} stops the movement before your hands settle there.",
"Her shoulders tense instead of loosening.",
"She catches your wrist and resets the boundary.",
"She moves the touch away before it becomes familiar."
],
"massage_legs_success": [
"Her muscles soften under your hands.",
"{name}'s breathing slows while your hands work.",
"{name} lets her legs relax into your hands, still watching how close you get.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_lower_back_failure": [
"Her body tightens, refusing the direction of the massage.",
"{name} shifts away from your hands.",
"{name} stops the movement before your hands settle there.",
"Her shoulders tense instead of loosening.",
"She catches your wrist and resets the boundary.",
"She moves the touch away before it becomes familiar."
],
"massage_lower_back_success": [
"Her muscles soften under your hands.",
"{name}'s breathing slows while your hands work.",
"{name} notices how low your hands are and lets the tension turn warmer.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_neck_failure": [
"Her body tightens, refusing the direction of the massage.",
"{name} shifts away from your hands.",
"{name} stops the movement before your hands settle there.",
"Her shoulders tense instead of loosening.",
"She catches your wrist and resets the boundary.",
"She moves the touch away before it becomes familiar."
],
"massage_neck_success": [
"Her muscles soften under your hands.",
"{name}'s breathing slows while your hands work.",
"{name} tilts her head despite herself, letting the touch reach a vulnerable place.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_pussy_bare_failure": [
"{name} closes her thighs before the bare contact can settle.",
"Her hips pull back, ending the massage before it turns into pussy play.",
"She catches your wrist and moves your hand away from her slit.",
"Her body tenses at the direct touch, and the rhythm breaks.",
"She blocks the move before your fingers can stay between her thighs."
],
"massage_pussy_bare_success": [
"{name} parts her thighs enough for your fingers to keep rubbing her bare pussy.",
"Her hips follow the touch by a small amount before she catches herself.",
"Her breathing changes when your fingers settle on her slit.",
"She lets the bare contact continue, tense but not pulling away.",
"Her thighs tremble around your hand as the massage turns sexual.",
"{name}'s thighs open around your hand as the touch becomes direct."
],
"massage_pussy_fabric_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your fingers away from her pussy.",
"Her body tightens, refusing the direction of the massage.",
"{name} stops the movement before your hands settle there.",
"She catches your wrist and resets the boundary.",
"She moves the touch away before it becomes familiar."
],
"massage_pussy_fabric_success": [
"Her thighs press around your hand as the fabric drags over her pussy.",
"{name}'s hips shift into the friction.",
"{name}'s hips answer the friction before she can hide it.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_shoulders_failure": [
"Her body tightens, refusing the direction of the massage.",
"{name} shifts away from your hands.",
"{name} stops the movement before your hands settle there.",
"Her shoulders tense instead of loosening.",
"She catches your wrist and resets the boundary.",
"She moves the touch away before it becomes familiar."
],
"massage_shoulders_success": [
"She tilts toward the massage instead of away from it.",
"Her muscles soften under your hands.",
"{name}'s breathing slows while your hands work.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_start_failure": [
"Her body tightens, refusing the direction of the massage.",
"{name} shifts away from your hands.",
"{name} stops the movement before your hands settle there.",
"Her shoulders tense instead of loosening.",
"She catches your wrist and resets the boundary.",
"She moves the touch away before it becomes familiar."
],
"massage_start_success": [
"Her muscles soften under your hands.",
"{name}'s breathing slows while your hands work.",
"{name} checks your intent before letting the first touch settle.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_success": [
"Her body relaxes into the massage.",
"Her muscles loosen under your hands.",
"Her breathing slows as your palms keep working.",
"A small sound escapes before she can make it polite.",
"Her skin warms under your palms as her body relaxes."
],
"massage_tongue_ass_failure": [
"{name} pulls her ass away before you can continue.",
"She shifts her hips out of reach before your tongue gets there.",
"Her hand moves back to keep your mouth away.",
"{name} stops the movement before your tongue can settle there.",
"She pushes your head back and ends the attempt.",
"She moves out of position before it becomes rimming."
],
"massage_tongue_ass_success": [
"Her hand grips the nearest surface while you lick her asshole.",
"{name} stiffens at first, then shivers as your tongue circles her asshole.",
"{name}'s ass tenses at first, then opens a little for your tongue.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_tongue_pussy_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"She moves out of position before your tongue can touch her.",
"{name} pushes your head back and sits up a little.",
"Her legs close and the massage mood breaks.",
"She turns her hips away from your mouth before it can become oral."
],
"massage_tongue_pussy_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"{name}'s hips lift toward your mouth.",
"{name}'s breath breaks as your tongue replaces your hands.",
"A small sound escapes before she controls it.",
"The contact changes her breathing."
],
"massage_vagina_failure": [
"{name} stops your hand before the massage reaches her pussy.",
"Her thighs close and the rhythm breaks immediately.",
"She pulls your wrist away from the place you were aiming for.",
"Her body refuses the lower touch before it can become direct.",
"She shifts back, making the boundary clear without letting it linger."
],
"massage_vagina_success": [
"{name} parts her thighs a little more as the massage becomes pussy play.",
"Her thighs twitch around your hand before she says anything.",
"She lets the pressure remain and adjusts to it."
],
"missionary_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"{name} stops the act before it can begin.",
"She presses a hand to your chest and keeps your cock out of her pussy.",
"She refuses the position before sex can start.",
"She moves out of position before you can continue."
],
"missionary_pleasure_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her hand stops your hip before your cock can get inside.",
"Her thighs close and stop the penetration.",
"Her body tightens instead of opening to the thrusts.",
"She pushes against your chest and keeps penetration from starting.",
"Her body locks up and she pulls away from your cock.",
"Her thighs press together, shutting the sex down.",
"She moves out from under you before it continues."
],
"missionary_pleasure_success": [
"She locks her legs around you and takes the thrusts deeper.",
"Her breath breaks each time your hips meet hers.",
"She arches under you, cunt clenching with every steady push.",
"Her hips lift toward you, asking for more without words.",
"A trembling moan slips out as she takes you deeper.",
"Her legs tighten around your hips.",
"Her hands clutch at your back.",
"Her inner walls flutter while she watches your face.",
"Her breath catches each time you drive into her face to face."
],
"missionary_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"{name} looks up at you as her cunt takes you in.",
"Her wet cunt holds you tight.",
"Her breath breaks each time you push deeper."
],
"mutual_oral_pleasure_failure": [
"{name} stops the mouth-to-pussy and mouth-to-cock rhythm completely.",
"{name} breaks the sixty-nine position before either mouth can keep working.",
"{name} pulls back and makes the refusal clear.",
"She stops you before it can continue.",
"Her posture closes and stays closed.",
"She stays in the position, but the shared rhythm turns uneasy.",
"Her body gets tense in the sixty-nine position, and the shared rhythm slips."
],
"mutual_oral_pleasure_success": [
"{name} struggles to keep her mouth steady while your tongue works her.",
"Her body responds to the exact kind of contact.",
"She reacts to the contact instead of the idea of it.",
"The pleasure shows in a small, physical answer."
],
"oral_giving_pleasure_failure": [
"{name} pulls her mouth away from your cock before the blowjob can continue.",
"Her mouth leaves your cock and she keeps her face away.",
"She releases your dick and keeps her mouth out of reach.",
"Her mouth keeps moving, but the rhythm turns reluctant.",
"She keeps her mouth near you, but gives less with each motion.",
"Her rhythm turns reluctant, and her mouth gives you less with each motion."
],
"oral_giving_pleasure_success": [
"Her lips tighten around your cock.",
"{name} watches your reaction while her mouth stays busy.",
"Her body responds to the exact kind of contact.",
"She reacts to the contact instead of the idea of it.",
"The pleasure shows in a small, physical answer."
],
"oral_receiving_pleasure_failure": [
"{name} pulls her hips back before your mouth can stay on her pussy.",
"Her thighs close enough to stop your tongue from finding her clit again.",
"Her thighs close enough to keep your mouth away.",
"{name} shifts away from your mouth, keeping her pussy out of reach.",
"{name} pulls her hips back from your face.",
"She breaks the cunnilingus before your mouth can settle back into rhythm.",
"Her thighs tense around your head, and the oral attention starts feeling less welcome."
],
"oral_receiving_pleasure_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"{name}'s thighs tighten around your mouth as the pleasure builds.",
"Her body responds to the exact kind of contact.",
"She reacts to the contact instead of the idea of it.",
"The pleasure shows in a small, physical answer."
],
"orgasm_success": [
"Her cunt pulses through the last waves of pleasure.",
"{name} watches your body tighten as you get close.",
"Her body locks up as the orgasm takes her.",
"She watches you lose it and does not look away.",
"She keeps still while you finish."
],
"penetration_pleasure_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her hips pull away from penetration and refuse the next thrust.",
"{name} stops the sex before your cock can keep moving inside her.",
"{name} breaks the rhythm, pushing your cock out before it continues.",
"She braces against you and ends the vaginal sex immediately.",
"Her body closes off the penetration and forces you to stop."
],
"penetration_pleasure_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"Her pussy tightens around your cock with each thrust.",
"Her body responds to the exact kind of contact.",
"She reacts to the contact instead of the idea of it.",
"The pleasure shows in a small, physical answer."
],
"pet_over_clothes_failure": [
"Her body tightens under your hand, and the touch stops feeling welcome.",
"{name} moves your hand away before the touch can settle.",
"Her body closes against the escalation.",
"She interrupts the contact before it becomes familiar.",
"She puts her hand over yours and lifts it from her body.",
"She shifts out of reach and keeps the line there."
],
"pet_over_clothes_success": [
"{name} lets your hand press over her clothes, feeling the shape beneath the fabric.",
"She allows the through-clothes petting, aware of exactly where your hand rests.",
"{name} shifts against your palm while the fabric keeps the contact restrained.",
"Her breath catches as your hand explores over the clothing instead of stopping.",
"Her body tightens under the clothed touch, but she keeps you there."
],
"petting_failure": [
"She moves your hand away and steps back.",
"{name} catches your hand before the petting settles anywhere intimate.",
"Her body moves out of range before your hand can explore further.",
"She closes her posture and keeps the touch from becoming familiar.",
"{name} stops the petting at the first clear escalation.",
"She breaks the contact and makes the boundary physical."
],
"petting_success": [
"{name} lets the petting remain only while it stays controlled.",
"Her body responds to the exact kind of contact.",
"She reacts to the contact instead of the idea of it.",
"The pleasure shows in a small, physical answer."
],
"player_undress_failure": [
"She watches you undress, unimpressed, and the mood turns colder rather than warmer.",
"Her eyes drop to your naked body, then back to your face, guarded.",
"She does not stop you from stripping, but her posture closes immediately.",
"The clothes are off, but the reaction is colder than you wanted.",
"She looks away for a second, giving you a clear sign you moved faster than she did."
],
"player_undress_success": [
"{name} watches your clothes come off, her attention dropping over your body before returning to your face.",
"Her eyes follow the movement. She does not stop you, but she measures what your confidence is asking from her.",
"She looks over you openly once there is less between you.",
"Her gaze lingers before she makes herself meet your eyes again.",
"She stays where she is, letting the change in your clothing settle between you."
],
"refusal_ask_low_failure": [
"{name} pulls back and makes the refusal clear.",
"Her reaction is immediate, sharp, and closed.",
"She pulls back as soon as she understands what you asked for.",
"The request makes her guarded in an instant.",
"She backs away and gives you nothing more.",
"Her body language turns cold before you can recover it."
],
"refusal_ask_normal_failure": [
"{name} pulls back and makes the refusal clear.",
"She refuses before moving any closer.",
"Her expression softens, but the answer stays no.",
"She keeps the boundary calm and clear.",
"She backs away and gives you nothing more.",
"Her body stays where it is, closed to the next step."
],
"refusal_beg_low_failure": [
"The pleading makes her pull back harder.",
"Her body closes off, and the attempt ends.",
"She stops you with a firm movement.",
"Her posture closes fast, more guarded than before.",
"She cuts the plea off before it can become messier."
],
"refusal_beg_normal_failure": [
"{name} pulls back and makes the refusal clear.",
"She stops you before it can continue.",
"She softens for a second, but the refusal stays in place.",
"The plea does not move her body any closer.",
"She hears the desire in it and still keeps her distance.",
"Her expression shows a little sympathy, not permission.",
"She refuses gently without giving the idea a path forward."
],
"refusal_command_low_failure": [
"Her body stiffens against the order immediately.",
"Her body closes off, and the attempt ends.",
"The order makes her step back instead of comply.",
"She backs away and gives you nothing more.",
"Her expression turns hard and closed."
],
"refusal_command_normal_failure": [
"She does not move, even after hearing the command.",
"Her posture stays firm, refusing the order without panic.",
"She stops you with a firm movement.",
"The command reaches her, but her body does not follow.",
"She refuses without anger, but she still refuses."
],
"refusal_massage_ass_failure": [
"She shifts away quickly when your hands move to her ass.",
"Her body tenses hard and she pulls away from the ass massage.",
"She turns and ends the massage the second you touch her ass.",
"She blocks any further ass massage with her body language.",
"She sits up and shuts down the ass massage completely.",
"{name} shifts away from your hands.",
"She stops you before you can properly grope her ass.",
"She moves out from under your hands with a sharp motion."
],
"refusal_massage_breasts_failure": [
"The mood breaks as she refuses to let you massage her breasts.",
"She grabs your wrist and pulls your hands away from her breasts.",
"Her hands cover her breasts and stop the act there.",
"She shakes her head and removes your hands from her breasts.",
"She pulls her chest away from your hands.",
"{name} covers her tits and steps back.",
"Her body goes stiff as she stops you from touching her tits.",
"She moves your hands off her chest with a firm look."
],
"refusal_massage_tongue_ass_failure": [
"She flinches hard and pulls her ass away from your tongue.",
"She stops you instantly before you can lick her asshole.",
"She ends the massage the second you go for her ass.",
"She shuts it down firmly, not wanting her asshole licked.",
"{name} pulls her ass away before you can continue.",
"Her body rejects the ass licking immediately.",
"She clenches her cheeks and blocks your tongue.",
"She pushes your head away with a tense sound."
],
"refusal_massage_tongue_pussy_failure": [
"Her thighs close enough to keep your mouth away.",
"Her thighs clamp shut, blocking access to her pussy.",
"She sits up and ends the massage right there.",
"She closes her legs quickly and pulls away from your tongue.",
"She stops you before you can lick her pussy.",
"Her body tenses and she refuses the sudden oral on her cunt.",
"She pushes your head away, ending the pussy licking.",
"The mood breaks as she rejects having her pussy eaten."
],
"remove_panties_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"remove_panties_success": [
"She lets the fabric come away and watches your face.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her skin shows a little more, and she does not cover it.",
"Her breathing changes once more skin is exposed.",
"Her body reacts to the exposure before she puts words on it.",
"She shifts her weight while you pull her panties down.",
"The undressing makes the air warmer between you."
],
"remove_your_clothes_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"remove_your_clothes_success": [
"{name} watches your clothes come off, her attention dropping over your body before returning to your face.",
"Her eyes follow the movement. She does not stop you, but she measures what your confidence is asking from her.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her body reacts to the exposure before she puts words on it.",
"She watches your clothes come off without looking away.",
"The undressing makes the air warmer between you."
],
"reverse_cowgirl_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"{name} stops the act before it can begin.",
"She rises from your lap before the head of your cock can enter her pussy.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"reverse_cowgirl_pleasure_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her hand stops your hip before your cock can get inside.",
"Her thighs close and stop the penetration.",
"She pushes against your chest and keeps penetration from starting.",
"Her body locks up and she pulls away from your cock.",
"Her thighs press together, shutting the sex down.",
"She moves her pelvis away and breaks the line-up.",
"The reverse position stops working and she pulls forward."
],
"reverse_cowgirl_pleasure_success": [
"She rides you in reverse cowgirl, her ass bouncing up and down on your cock.",
"The reverse cowgirl gives a perfect view of her ass taking your cock.",
"Her ass cheeks ripple while she rides your cock hard in reverse.",
"Her ass moves aggressively as she fucks herself deep in reverse position.",
"She faces away, sliding her wet pussy down your shaft in steady bounces.",
"She grinds and bounces backwards, her pussy swallowing every inch.",
"The position lets her ass move freely while she fucks you aggressively.",
"She leans forward and rides your cock with deep, wet strokes in reverse."
],
"reverse_cowgirl_success": [
"Her pussy clenches around your cock.",
"{name}'s hips meet your thrusts.",
"{name}'s hips find the angle while her back stays turned to you.",
"Her wet cunt holds you tight.",
"Her breath breaks each time you push deeper."
],
"rub_breasts_fabric_failure": [
"She catches your wrist before your hand settles.",
"Her shoulders pull back, closing off the touch.",
"She moves your hand away from her chest.",
"Her expression tightens, and the answer is clear before she speaks.",
"She stops your hand before it can rub over her tits."
],
"rub_breasts_fabric_success": [
"Her nipples harden under the fabric, and she does not move your hand away.",
"Her breath catches as your palm drags over her tits.",
"She glances down at your hand, then lets the touch continue.",
"Her chest rises a little faster under your fingers.",
"She stays still, but her nipples answer through the fabric."
],
"rub_pussy_fabric_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your hand away before the touch can settle.",
"She catches your wrist before you can keep rubbing her through the fabric.",
"She interrupts the contact before it becomes familiar.",
"She pulls your hand away from her pussy.",
"She shifts out of reach and keeps the line there."
],
"rub_pussy_fabric_success": [
"Her thighs press around your hand as the fabric drags over her pussy.",
"{name} reacts as your fingers rub her pussy through the fabric.",
"Her thighs tense around your hand while the cloth drags over her slit.",
"She lets the friction stay on her pussy through the clothes, breathing harder.",
"{name} presses subtly into the rubbing as the fabric works against her clit."
],
"rubbing_pleasure_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your fingers away from her pussy.",
"She catches your wrist before you can touch her again.",
"{name} stops the rubbing before the friction can build again.",
"{name} breaks the friction and refuses to settle back into it.",
"Her body pulls out of the rubbing rhythm before it can sharpen."
],
"rubbing_pleasure_success": [
"Her thighs press around your hand as the fabric drags over her pussy.",
"{name}'s hips answer the fabric-dragging pressure.",
"{name}'s hips shift into the friction.",
"Her body responds to the exact kind of contact.",
"She reacts to the contact instead of the idea of it.",
"The pleasure shows in a small, physical answer."
],
"rubbing_to_fingering_failure": [
"Her thighs close around your hand and keep it from going farther.",
"She catches the fabric and blocks the escalation.",
"Her hand stops yours before you can get inside.",
"She pulls the panties back into place.",
"She backs away and gives you nothing more."
],
"rubbing_to_fingering_success": [
"Her thighs tense when your fingers get past the fabric.",
"Her pussy is wetter than the rubbing made it look.",
"She goes still for a second as cloth gives way to direct touch.",
"Her slit tightens around your fingers after the teasing through fabric.",
"The direct contact makes her hips twitch harder than the rubbing did."
],
"sex_sex_position_switch_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her hand stops your hip before your cock can get inside.",
"Her thighs close and stop the penetration.",
"Her thighs press together, shutting the sex down.",
"She moves her pelvis away and breaks the line-up."
],
"sex_sex_position_switch_success": [
"Her cunt clenches when the new position makes you push differently.",
"Her breath breaks as the change makes your cock hit deeper.",
"She adjusts around you, thighs tense while your cock stays inside.",
"Her body stutters through the movement, then takes the new rhythm.",
"She tightens around you before settling into the new position."
],
"sex_to_69_failure": [
"She keeps her pussy glued to your cock.",
"Her hand stops your hip before your cock can get inside.",
"She refuses to turn and keeps riding you.",
"She pins you down and blocks the change.",
"She twists away and stops the switch.",
"She stays focused on fucking you.",
"She shakes her head and kills it.",
"She stays selfish with normal sex."
],
"sex_to_69_success": [
"She follows the change, still flushed from being fucked.",
"Her mouth lowers toward your cock while her thighs settle around your face.",
"Her wet pussy stays close to your tongue as the sex turns into mutual oral.",
"She catches the rhythm after a second, mouth and hips finding you again.",
"Her body stays eager even as penetration gives way to mouths."
],
"sex_to_anal_failure": [
"Her ass moves out of reach, and her hand stops you at the hip.",
"She twists her hips and gasps uncomfortably.",
"She stiffens hard and keeps you away from her ass.",
"She clenches tight and pulls away fast.",
"She stays clenched shut and blocks you.",
"Her expression turns tense as she shuts it down."
],
"sex_to_anal_success": [
"Her body tenses when your cock leaves her pussy and presses against her ass.",
"Her cunt is still wet around nothing when the new pressure reaches her asshole.",
"She braces herself as the sex moves from her pussy to her ass.",
"Her breathing changes when the tighter pressure replaces the wet slide.",
"She holds still, letting her ass adjust before you push farther."
],
"sexual_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her thighs close and stop the penetration.",
"Her thighs press together, shutting the sex down.",
"She pushes against your chest and keeps penetration from starting.",
"She moves out from under you before it continues.",
"She pulls back before the action can keep building.",
"Her body turns away from the contact instead of opening to it.",
"She stops the action before it can turn worse."
],
"sexual_success": [
"Her pussy clenches around your cock.",
"Her pussy tightens around your cock.",
"Her hips answer before she can hide how much she wants it.",
"A low moan slips out when the pleasure hits the right spot.",
"She takes each thrust with a sharp little jolt.",
"Her breathing turns rougher as the contact keeps working.",
"She stays with the action, flushed and visibly aroused."
],
"sit_on_face_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"{name} stops the act before it can begin.",
"She plants a hand on your shoulder and stays where she is.",
"The heat cuts off at the boundary she sets.",
"She moves out of position before you can continue."
],
"sit_on_face_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"{name}'s hips lift toward your mouth.",
"Her pussy gets wetter against your tongue.",
"She breathes harder each time your mouth returns to her clit.",
"Her fingers tighten in your hair.",
"{name} imagines the position before she decides whether to climb over you."
],
"sixty_nine_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"{name} stops the act before it can begin.",
"She turns away before your bodies can line up for sixty-nine.",
"Her body stiffens in the sixty-nine position, and the shared rhythm turns awkward.",
"She moves out of position before you can continue."
],
"sixty_nine_success": [
"Her mouth works your cock while her hips grind against your face.",
"{name} keeps one hand on you while your tongue works her pussy.",
"She loses track of your cock for a second, then takes it back into her mouth.",
"Her thighs tighten around your head when you moan against her.",
"The two of you get wetter and sloppier together.",
"{name} looks at the position in her head before letting the idea turn physical."
],
"sixty_nine_to_sex_failure": [
"Her thighs stay where they are, refusing penetration for now.",
"She pushes against your chest and keeps penetration from starting.",
"Her body locks up and she pulls away from your cock.",
"She refuses to leave the mutual oral position.",
"She keeps the 69 going and blocks the switch.",
"She does not let the position become sex."
],
"sixty_nine_to_sex_success": [
"Her thighs spread again when your cock replaces your mouth.",
"She is still wet from your tongue when the first thrust makes her body jolt.",
"Her breath catches as the messy oral turns into sex.",
"Her pussy opens under you, slick from the position you just left.",
"She gives up on keeping the oral rhythm once your cock starts pushing in."
],
"slide_hand_inside_panties_public_failure": [
"She catches your wrist before your fingers can slip under her panties.",
"She holds the clothing in place and steps back.",
"Her body turns away enough to make the refusal clear.",
"Her body stiffens at the public risk before your fingers can settle inside.",
"She catches the danger of the place and tightens around your hand.",
"She breaks the continuation and resets the boundary.",
"The public setting makes her breath sharpen and her hips go guarded.",
"She keeps the touch from becoming hidden under her panties while anyone might notice."
],
"slide_hand_inside_panties_public_success": [
"{name} goes still as your fingers cross the hidden line.",
"She adjusts to the change instead of losing the moment.",
"Her body reacts to the specific change in rhythm."
],
"slide_inside_panties_public_failure": [
"Her thighs close around your hand and keep it from going farther.",
"{name} moves your fingers away from her pussy.",
"{name}'s hand closes around your wrist and keeps the boundary clear.",
"She shifts her hips away, stopping the attempt before anyone else can notice.",
"She catches your wrist before you can touch her again.",
"Her posture tightens at once, turning the public risk into a hard refusal."
],
"slide_inside_panties_public_success": [
"Her thighs press around your hand as the fabric drags over her pussy.",
"Her breath catches when your fingers rub her through her clothes.",
"{name}'s body goes still before it softens, the shock of your fingers under the panties making the public risk sharper.",
"{name}'s hips shift into the friction.",
"She glances around once, then her thighs tense around the hidden touch instead of pushing it away.",
"She stays with the act and lets it continue."
],
"social_failure": [
"{name} pulls back and makes the refusal clear.",
"She stops you before it can continue.",
"Her posture closes and stays closed.",
"She lets the topic die before it turns into a real exchange.",
"Her answer stays short, giving you no opening to keep the conversation alive.",
"The subject misses her interest, and she does not pretend otherwise.",
"Her attention drifts away before the conversation can warm.",
"She steps back enough to end it."
],
"social_success": [
"Her eyes stay on you while she replies.",
"She gives you a real reply instead of a polite nod.",
"Her shoulders loosen, and she stays in the conversation.",
"A real reaction crosses her face before politeness can cover it.",
"Her guardedness eases because the subject fits her."
],
"start_anal_success": [
"Her asshole tightens around your cock.",
"Her tight hole starts to take you slowly.",
"She breathes hard through the stretch.",
"Her body trembles but keeps the position.",
"She holds still while the anal begins."
],
"start_analingus_success": [
"Her ass twitches against your mouth.",
"She stiffens, then holds the position.",
"Her breathing turns nervous and hungry at once.",
"She pushes back a little after the first lick.",
"Her body stays tense but does not pull away."
],
"start_blowjob_success": [
"Her tongue presses under the head of your cock.",
"She keeps her eyes on you as her mouth takes over.",
"Her cheeks hollow around your cock.",
"Her lips close around you.",
"Saliva runs down your shaft as she keeps going."
],
"start_breast_sex_success": [
"The head of your cock pushes up between her breasts.",
"Her hands keep her tits closed around you.",
"Her breasts press around your shaft.",
"She presses her chest tighter around your shaft.",
"She watches you react to the tight slide."
],
"start_cunnilingus_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"Her hips tense when your mouth reaches her.",
"Her breathing breaks as your tongue starts.",
"Her thighs frame your face as she lets you in.",
"She holds herself open for your mouth.",
"She spreads wider after the first lick."
],
"start_fingering_success": [
"Her breath catches as your fingers enter her pussy.",
"Her hips shift toward your hand when the first finger slides in.",
"Her thighs open under your hand.",
"Her cunt tightens around the first strokes.",
"She gets wetter around your fingers."
],
"start_handjob_success": [
"Her fingers adjust around your cock.",
"Her hand tightens around your shaft.",
"She tests the stroke and watches your reaction.",
"Her thumb circles the head between strokes.",
"She strokes you from base to tip."
],
"start_rubbing_success": [
"Her thighs tense as your hand works her through the fabric.",
"Her pussy gets wetter against your fingers.",
"The fabric grows warmer under your fingers as she stops pulling away.",
"Her hips shift subtly into the rubbing without letting you inside yet.",
"She breathes harder while your hand stays over the barrier."
],
"start_sex_success": [
"Her body opens around the first thrust.",
"Her breath catches as your cock enters her.",
"Her pussy tightens around the sudden fullness.",
"Her hips shift to take you deeper.",
"She pulls you closer as penetration begins."
],
"start_sixty_nine_success": [
"Her mouth works your cock while her thighs tighten around your head.",
"Her thighs tighten around your face while her mouth finds you.",
"Her hips press down toward your mouth as she keeps sucking.",
"She adjusts her hips until both mouths are in place.",
"Her body trembles as the position locks in."
],
"strip_failure": [
"She stops your hands before the fabric moves further.",
"Her hand stops at the fabric.",
"She steps back and holds her clothes in place.",
"She keeps her clothes in place.",
"She pulls the clothing back into place.",
"She gives you a look that says the timing is wrong.",
"She refuses before more skin is exposed.",
"Her body closes off and the undressing stops.",
"She covers herself and stops the undressing."
],
"strip_success": [
"She lets more skin show and keeps her eyes on you.",
"The fabric drops, and she stays in front of you.",
"Her hands finish removing the clothing.",
"She keeps her gaze on you as the clothes come away.",
"Her breathing changes as more of her body is revealed.",
"She lets you see the body underneath.",
"She stays close, flushed and aware of your stare.",
"More skin shows, and she does not try to hide it."
],
"strip_together_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"strip_together_success": [
"She lets the fabric come away and watches your face.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her skin shows a little more, and she does not cover it.",
"Her breathing changes once more skin is exposed.",
"Her body reacts to the exposure before she puts words on it.",
"She starts undressing with you, glancing at your body as each layer comes off.",
"The undressing makes the air warmer between you."
],
"suck_clit_failure": [
"Her thighs close enough to keep your mouth away.",
"{name} pulls her hips back from your face.",
"{name} stops the act before it can begin.",
"Her thighs close around your head and push your mouth away from her clit.",
"Her thighs tense around your mouth, making the pressure feel less welcome.",
"She moves out of position before you can continue."
],
"suck_clit_success": [
"Her thighs tighten around your head while your tongue works her clit.",
"{name}'s hips lift toward your mouth.",
"Her pussy gets wetter against your tongue.",
"She breathes harder each time your mouth returns to her clit.",
"Her fingers tighten in your hair."
],
"suck_nipples_failure": [
"She pulls her chest away from your hands.",
"{name} moves your hand away before the touch can settle.",
"She pulls her chest away from your mouth.",
"She interrupts the contact before it becomes familiar.",
"She covers her breast and pulls it away from your mouth.",
"She shifts out of reach and keeps the line there."
],
"suck_nipples_success": [
"Her chest lifts into your mouth, her nipple hardening under your tongue.",
"She catches her breath when your lips and tongue work over her nipple.",
"Her hand tightens near you as your mouth draws another reaction from her nipple.",
"{name} arches slightly as your mouth closes around her nipple.",
"{name} lets the nipple play continue, tense and sensitive under your mouth."
],
"talk_art_failure": [
"{name} looks at the piece again, then shakes her head.",
"She follows where you point, but her expression does not change.",
"She waits for you to explain which detail you mean.",
"She glances back at you, unconvinced."
],
"talk_art_success": [
"{name} looks at the detail you pointed out before answering.",
"She takes another look at the piece from where you are standing.",
"Her eyes move between the two parts you compared.",
"She stays with the subject and gives you a fuller answer."
],
"talk_computers_failure": [
"{name} frowns and asks you to go back a step.",
"She waits for the practical answer, but you have not given one.",
"She looks at the screen, then back at you.",
"She stops following once you move past the original problem."
],
"talk_computers_success": [
"{name} follows the steps and asks about the part that could fail.",
"She listens until you reach the practical part.",
"She checks that she understood the fix before answering.",
"She looks more interested once you explain what the change would actually do."
],
"talk_cooking_failure": [
"{name} looks uncertain when you skip from the ingredients to the finished dish.",
"She asks which step is supposed to make the recipe work.",
"She listens to the method, but it still does not sound right to her.",
"She gives you a brief answer and leaves the recipe there."
],
"talk_cooking_success": [
"{name} follows the recipe step by step and asks about one of the ingredients.",
"She listens closely once you explain when everything goes into the pan.",
"She smiles when the method starts to sound manageable.",
"She asks what you would serve with it."
],
"talk_finance_failure": [
"{name} asks which number the plan is based on.",
"She waits for a concrete cost, but you keep speaking in general terms.",
"She points out the risk you left out of the calculation.",
"She checks the figures again and still looks unconvinced."
],
"talk_finance_success": [
"She follows the figures until it is clear what decision they support.",
"{name} checks the risk you mentioned before answering.",
"She asks for one more number, then gives you a considered reply.",
"She looks over the calculation again and nods."
],
"talk_massage_failure": [
"{name} shifts back slightly when your explanation becomes vague.",
"Her shoulders tighten when you describe using more pressure.",
"She asks how you would know when to stop.",
"She rubs the sore spot herself and looks doubtful."
],
"talk_massage_success": [
"{name} listens more closely when you explain where you would start.",
"Her shoulders loosen a little as you describe the pressure.",
"She asks what you would do if the muscle stayed tense.",
"She touches the area you mentioned and considers the suggestion."
],
"talk_music_failure": [
"{name} listens for the part you mean, then shakes her head.",
"She asks you to point out where the change happens in the song.",
"She waits for a clearer example before answering.",
"She hears the section again and still disagrees."
],
"talk_music_success": [
"{name} taps the rhythm once before answering.",
"She thinks back through the song before replying.",
"She recognises the section you mean and listens to it again.",
"She asks what else you noticed in the same track."
],
"talk_photography_failure": [
"{name} looks at the photograph again, then shakes her head.",
"She looks for the detail you mean but cannot see it in the picture.",
"She asks why you chose that part of the photograph.",
"She compares the two shots and still prefers the other one."
],
"talk_photography_success": [
"She looks at the detail you noticed before answering.",
"{name} traces the edge of the frame with one finger.",
"She checks where the light falls and nods.",
"She compares the photograph with the wider shot beside it."
],
"talk_sports_failure": [
"{name} asks how that would help the person improve.",
"She listens to the plan but cannot see how somebody would keep it up.",
"She points out that the movement would be difficult for a beginner.",
"She gives you a short answer and leaves the training plan there."
],
"talk_sports_success": [
"{name} follows the movement you describe and asks about the next step.",
"She considers how much effort the routine would take each week.",
"She asks how a beginner would learn the movement safely.",
"She compares the routine with something she has tried before."
],
"tease_words_failure": [
"The suggestive line lands flat, and she does not pick it up.",
"{name} hears the implication and lets it die there.",
"Her expression says the tease arrived too early.",
"She refuses to turn the conversation dirty for you.",
"The teasing line gets no smile back."
],
"tease_words_success": [
"{name} reacts to the heat in the words before deciding how much of it to allow.",
"She reacts to the heat in the words before deciding how much of it to allow.",
"She leans into the contact by a small, honest amount."
],
"titfuck_let_work_failure": [
"She stops moving and lets her breasts fall away from your cock.",
"{name} refuses to take over, leaving your hands with nothing to guide.",
"Her chest pulls back from your shaft, and she will not keep the titfuck going by herself.",
"She shakes her head and breaks the contact before you can make her do the work.",
"She moves her upper body back and ends the titfuck attempt."
],
"titfuck_let_work_success": [
"{name} takes over with both hands, pressing her tits around your cock and moving them herself.",
"She keeps your cock pinned between her tits and makes each stroke slower near the head.",
"She watches your face while she strokes you with her breasts, tightening the squeeze whenever you react.",
"A little confidence shows in her eyes as she learns how hard to squeeze and where to rub.",
"She presses her chest tighter around your shaft."
],
"titfuck_lick_tip_failure": [
"She turns her mouth away before the head of your cock reaches her tongue.",
"Her lips stay closed, and she moves her face back from your cock.",
"She breaks the contact with her chest rather than let your cock reach her mouth.",
"She stops the request there, keeping her tongue away and letting your shaft slip free.",
"{name} keeps the titfuck from getting messier and refuses to lick the tip."
],
"titfuck_lick_tip_success": [
"Her tongue catches the head of your cock as it slips out from between her tits.",
"She keeps her tits around your shaft and flicks her tongue over the tip whenever it reaches her mouth.",
"A wet line connects her tongue to your cock before her breasts pull you back down.",
"{name} licks away the precum, then squeezes her breasts tighter and strokes you again.",
"She tastes the head, smiles against it, and keeps rubbing your shaft between her tits."
],
"titfuck_pleasure_failure": [
"She covers her chest and moves back before your cock can touch her tits.",
"{name} keeps her breasts out of reach and stops your hands from guiding her closer.",
"She pulls her chest away from your hands.",
"Her body pulls away, breaking the contact before the titfuck can start.",
"She holds her top in place and refuses to let your cock near her chest.",
"She closes the distance for a second, then thinks better of it and backs off."
],
"titfuck_pleasure_success": [
"Her tits squeeze around your cock, and she keeps them tight enough for the head to push out between them.",
"{name} looks down at your shaft sliding through her breasts, then tightens her hands around them.",
"Precum smears across her chest while she keeps her tits moving over your cock.",
"She leans closer, breathing over the tip each time it slips free from between her breasts.",
"Her nipples brush your shaft as she works you with her tits, keeping you trapped in the soft squeeze."
],
"touch_arm_failure": [
"She shifts her arm away from your hand.",
"{name} does not let the light touch settle.",
"Her body stiffens, and your hand has nowhere to stay.",
"She steps out of the touch before it can feel casual.",
"The small touch lands too soon, and she shuts it down."
],
"touch_arm_success": [
"She looks down at your hand on her arm, then leaves it there.",
"She lets the touch stay for a second while she reads your intent.",
"She leans into the contact by a small, honest amount."
],
"touch_failure": [
"Her eyes warn you before your hand can settle.",
"She moves your hand away and steps back.",
"Her hand stops yours with a clear boundary.",
"{name} stiffens and does not lean back in.",
"She breaks the contact before it settles.",
"The contact ends fast, and the distance comes back.",
"She pulls back from the contact."
],
"touch_hand_failure": [
"She pulls her hand back before your fingers can settle.",
"{name} moves her hand out of reach.",
"Her fingers close away from yours.",
"She stops the touch before it becomes contact.",
"The attempt ends with her hand safely out of yours."
],
"touch_hand_success": [
"{name} looks down at the contact and decides whether to leave her hand there.",
"She looks down at the contact and decides whether to leave her hand there.",
"She leans into the contact by a small, honest amount."
],
"touch_success": [
"She stays close under your hand.",
"Her breath catches, but she stays close.",
"Her body softens around the small point of contact.",
"She lets the contact last."
],
"transition_failure": [
"She stops the transition with a tense shift of her hips.",
"{name} pulls back and makes the refusal clear.",
"She pulls back before it can go further.",
"Her body closes off, and the attempt ends.",
"Her body refuses the new position and forces you to stop adjusting."
],
"transition_success": [
"She adjusts with you, keeping contact while the position changes.",
"Her body follows the switch without losing the arousal already built.",
"She stays with the act and lets it continue.",
"She helps the change happen instead of making you force it."
],
"try_bottom_off_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"try_bottom_off_success": [
"She lets the fabric come away and watches your face.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her skin shows a little more, and she does not cover it.",
"Her breathing changes once more skin is exposed.",
"Her body reacts to the exposure before she puts words on it.",
"Her hands join yours at the waistband, helping the fabric down.",
"The undressing makes the air warmer between you."
],
"try_slip_inside_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"{name} moves your hand away before the touch can settle.",
"Her hand stops your cock at her slit and pushes your hips back.",
"She interrupts the contact before it becomes familiar.",
"She turns her hips aside before the head can enter her slit.",
"She shifts out of reach and keeps the line there."
],
"try_slip_inside_success": [
"She stays with you as your cock finds her slit and starts to enter.",
"{name} lets you push past the last hesitation and guide your cock toward her pussy.",
"Her thighs adjust around you as the contact turns from petting into penetration.",
"Her body opens enough for the attempt to become real penetration.",
"{name} holds herself still while you slip from teasing into sex."
],
"try_top_off_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"try_top_off_success": [
"She lets the fabric come away and watches your face.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her skin shows a little more, and she does not cover it.",
"Her breathing changes once more skin is exposed.",
"Her body reacts to the exposure before she puts words on it.",
"Her arms lift, and the top comes free in your hands.",
"Her top slides up and she holds still while more skin shows."
],
"unhook_bra_failure": [
"Her hand catches the clothing before it can move farther.",
"{name} catches your hand before you can keep undressing her.",
"She holds the clothing in place and steps back.",
"{name} stops the undressing with a firm motion.",
"She keeps the layer in place and resets the boundary.",
"The refusal lands before the clothing changes.",
"She steps back from the attempt to expose more."
],
"unhook_bra_success": [
"She lets the fabric come away and watches your face.",
"{name} lets the clothing shift happen, watching how you handle the permission.",
"Her skin shows a little more, and she does not cover it.",
"Her breathing changes once more skin is exposed.",
"Her body reacts to the exposure before she puts words on it.",
"Her shoulders loosen when the clasp opens.",
"Her bra loosens and her chest lifts with a sharper breath."
],
"wall_pleasure_failure": [
"{name} pushes your hips back before your cock can stay inside.",
"Her hand stops your hip before your cock can get inside.",
"Her thighs close and stop the penetration.",
"Her pussy tightens uncomfortably and she pushes back against your chest.",
"Her body locks up and she pulls away from your cock.",
"Her thighs press together, shutting the sex down.",
"She moves her pelvis away and breaks the line-up.",
"She turns her face away as the wall position misses the mood."
],
"wall_pleasure_success": [
"Her pussy clenches around your cock.",
"Her back stays against the wall while her wet pussy takes each hard thrust.",
"The wall keeps her in place as her pussy clenches around you.",
"She gasps against your mouth while you fuck her standing.",
"Her legs tighten around you while you hold her up.",
"Her palms press against the wall as you fuck her.",
"Her body bounces lightly between you and the wall.",
"She stays face to face with you, flushed and dripping.",
"She clings to you as the wall sex gets rougher."
],
"whisper_dirty_failure": [
"She leans away before the dirty words can feel private.",
"{name} does not let your lowered voice pull her closer.",
"Her expression hardens at the whisper.",
"She cuts off the dirty line before it can work on her.",
"The whisper lands wrong, and she moves out of it."
],
"whisper_dirty_success": [
"{name} stills at the whisper and listens.",
"She catches the dirty words and does not move away.",
"Her breath changes when she hears what you said.",
"She lets the whisper stay between you.",
"The dirty line reaches her before she can dismiss it."
],
"rub_ass_clothes_success": [
"Her ass tenses under your hand, then relaxes enough to let you keep going.",
"She shifts her hips once, making the touch feel more intentional.",
"Her breath changes when your fingers press into her ass.",
"She looks back at you, but does not move away.",
"Her body gives a small pause before accepting the hand on her ass."
],
"rub_ass_clothes_failure": [
"She steps forward before your hand can settle.",
"Her hand catches your wrist and pulls it away from her ass.",
"She turns her hips out of reach.",
"Her body goes stiff, and the touch stops there.",
"She moves away before the rub can become anything more."
],
"bring_hand_inside_pants_success": [
"Her eyes flick around the area before her fingers close around your cock.",
"She hesitates for one sharp second, then hides her hand deeper inside your pants.",
"Her hand goes still when someone moves nearby, then starts stroking you again.",
"Her fingers wrap around your cock, careful and tense because of where you are.",
"She keeps her face calm, but her hand tightens inside your pants."
],
"bring_hand_inside_pants_failure": [
"She yanks her hand back before it gets inside.",
"Her eyes widen, and she pulls away from your pants immediately.",
"She catches what you are trying to do and stops you cold.",
"Her hand slips free, and the public risk kills the attempt instantly.",
"She steps back, refusing to let her hand disappear under your clothes."
],
"cont_public_handjob_keep_success": [
"Her hand keeps moving inside your pants, hidden but steady.",
"She keeps stroking you, eyes alert for anyone looking too long.",
"Her fingers tighten around your cock whenever the risk spikes.",
"She slows when someone passes, then starts jerking you again.",
"Her face stays almost normal while her hand keeps working you."
],
"cont_public_handjob_keep_failure": [
"Her hand stops the second she thinks someone noticed.",
"She pulls out fast, leaving your cock hard and unfinished.",
"Her eyes snap toward a nearby couple, and she stops touching you.",
"She withdraws her hand before the risk gets worse.",
"Her fingers leave your pants, and the public game ends there."
],
"come_public_hand_success": [
"Her fingers stay closed around the mess for a second before she pulls back.",
"She hides her palm quickly, eyes scanning the space around you.",
"Her hand stays low and tense, wet with cum under the cover of your clothes.",
"She breathes through her nose, trying to keep her face normal while your cum warms her hand.",
"She pulls her hand free carefully, keeping the mess out of sight."
],
"come_public_hand_failure": [
"She pulls away before your cum can reach her hand.",
"Her hand leaves your pants, and the hidden game stops there.",
"She refuses to let you cum in her hand and puts space between her fingers and your cock."
],
"talk_anal_private_success": [
"She listens instead of shutting the subject down.",
"Her expression changes, but she does not avoid the question.",
"She takes a second before answering, weighing the idea seriously.",
"Her thighs shift slightly, more from tension than refusal.",
"She looks at you long enough to make the answer feel real."
],
"talk_anal_private_failure": [
"Her face closes before the subject gets any further.",
"She gives you a look that makes the boundary obvious.",
"Her posture stiffens, and the conversation stops there.",
"She does not let the question turn into negotiation.",
"She shuts it down before you can soften it."
],
"talk_anal_public_success": [
"Her eyes flick around once before she answers under her breath.",
"She keeps her voice low, but she does not walk away from the subject.",
"The public risk makes her tense, not silent.",
"She glances past you, then answers quietly.",
"Her expression stays controlled while she keeps the answer between you."
],
"talk_anal_public_failure": [
"Her eyes cut toward the people nearby, and the subject dies there.",
"She gives you a sharp look for bringing that up here.",
"She refuses to answer where someone could hear.",
"Her posture tightens, and she moves the conversation away from anal.",
"She shuts it down with a glance around the room."
],
"fingering_to_cunnilingus_success": [
"Her hips jump when your tongue replaces your fingers.",
"Her wet pussy opens under your mouth after your fingers leave her.",
"She tightens from the sudden switch from hand to tongue.",
"Her thighs frame your face while her cunt is still slick from your fingers.",
"Her breath breaks when your tongue finds the clit your hand left sensitive."
]
}
END_REACTION_BANK %//% SCENE_DESCRIPTIONS_NONSEX
{
"admire_outfit_success": [
"You let your eyes travel over her outfit and name the detail that caught your attention.",
"You compliment the outfit itself, not just the body under it.",
"You notice the cut, color, or fit and make the appreciation specific.",
"You look over her outfit and point out the detail you like."
],
"ask_about_schedule_success": [
"You ask when her week usually opens up.",
"You ask which days she usually works and listen for the answer.",
"You ask about her schedule with practical interest, looking for when she can actually be found.",
"You ask which parts of her week she usually keeps open and watch whether she volunteers anything useful.",
"You ask when she is usually around and wait for a real answer.",
"You ask which days are easiest for her.",
"You ask when you are most likely to find her.",
"You ask when she is usually free."
],
"ask_address_success": [
"You ask for her address, then leave the choice in her hands.",
"You ask for her address and wait for the answer.",
"You keep the question simple and let her write the address down.",
"You ask where she lives and keep the question casual.",
"You ask if she is comfortable telling you where to find her.",
"You ask where she lives and keep your tone casual enough for her to refuse.",
"You calmly ask where she lives carefully, aware that the question asks for more trust than ordinary small talk.",
"You ask where she lives, careful not to make it sound like a demand."
],
"ask_number_success": [
"You give her your phone and let her decide whether to type the number in.",
"You ask if she wants to trade numbers and leave your phone within reach.",
"You ask for her number and wait for her answer.",
"You offer your phone and let her decide whether to give you her number.",
"You ask for her number directly and wait for her answer.",
"You ask for her number directly.",
"You ask for a way to text her later."
],
"casual_heat_failure": [
"You try to continue, but {name} stops it before it goes farther.",
"You push a little farther, but she pulls back and ends it.",
"You ask about that, but {name} gives you a short answer and lets it end.",
"You make the move, and she shuts it down at once.",
"You try to continue, but {name} stops the attempt before it goes further.",
"{name} stares at you like you just changed the subject at the worst possible second. The mood drops hard."
],
"casual_heat_failure_hot": [
"You try to continue, but {name} stops it before it goes farther.",
"You start, but she cuts it short.",
"You make the attempt, and {name} refuses it clearly.",
"You make the move, and she shuts it down at once.",
"{name} pulls away at once. Talking about that now feels absurd, and the arousal between you collapses into irritation."
],
"casual_heat_success": [
"Your sentence trails off. You stay close and wait to see what she does.",
"You make the approach directly, and {name} gives you a clear yes.",
"You do it without dressing it up, and {name} lets it continue.",
"You stop pretending the conversation is only about the subject and tell her she is distracting you."
],
"casual_heat_success_hot": [
"You let the talk turn suggestive and watch whether she moves closer or shuts it down.",
"You stop talking and look at her mouth, then back at her eyes.",
"You move a little closer and let the unfinished sentence die.",
"You make the charged part of the conversation obvious, and she keeps listening.",
"You hold the line between talk and temptation until she chooses not to break it."
],
"compliment_style_success": [
"You compliment her style by pointing to a detail that actually fits her.",
"You point out one detail of her outfit that actually suits her.",
"You let your attention stay on the way she presents herself, not only on her body.",
"You give the compliment with enough detail that it sounds chosen, not automatic.",
"You make it clear you noticed the look she put together."
],
"control_refusal": [
"You try to continue, but {name} stops it before it goes farther.",
"You start, but she cuts it short.",
"You make the attempt, and {name} refuses it clearly.",
"You try again, and she keeps you from continuing.",
"You try to continue, but {name} stops the attempt before it goes further."
],
"control_success": [
"You give her a clear instruction and wait for her to follow it.",
"You tell her exactly what you want from her.",
"You give the order plainly, and {name} follows it.",
"You make the instruction short and let the pause after it do the pressure.",
"You take charge, and {name} lets you steer what happens next.",
"You give her a direct instruction and wait to see if she follows it."
],
"deep_kiss_success": [
"You kiss her deeper, letting your tongue meet hers when her mouth opens.",
"You deepen the kiss and let your tongue tease hers.",
"You deepen the kiss, holding her close while your mouth asks for more than a simple touch.",
"Your mouth stays on hers until the kiss stops feeling polite.",
"You hold the kiss long enough for both of you to breathe harder.",
"The kiss turns slower and wetter as you keep her close."
],
"default_fail": [
"You make the move, and she shuts it down at once.",
"{name} gives a short answer and leaves you with little to build on.",
"The timing is off. {name} notices the effort, but her reaction stays guarded.",
"She gives you only short answers, and the opening dies there.",
"{name} does not warm to it, and the conversation loses traction."
],
"default_failure": [
"You try to continue, but {name} stops it before it goes farther.",
"You push a little farther, but she pulls back and ends it.",
"You make the move, and she shuts it down at once.",
"You try to continue, but {name} stops the attempt before it goes further.",
"{name} gives a short answer and lets the subject drop.",
"{name} closes the interaction down before it gets warmer."
],
"default_success": [
"You keep the move simple, and {name} stays with you.",
"{name} gives the conversation a little more attention.",
"{name} stays engaged, and her answer gives you something concrete to build on.",
"{name} gives you a small but real sign that you can keep going."
],
"dirty_praise_success": [
"You lower your voice and praise her body in words meant for her alone.",
"You lower your voice and tell her exactly what you like about her body.",
"You tell her how good she looks and how much you enjoyed what just happened.",
"You look her over and tell her exactly what you like about her body."
],
"flirt_bold_success": [
"You stop hiding the attraction and let her hear it plainly.",
"You stop hinting and tell her you find her attractive.",
"You flirt more openly, making the interest clear, not hiding it behind politeness."
],
"flirt_soft_success": [
"You flirt lightly, warm enough to invite an answer without cornering her.",
"You tease her lightly and wait for her answer.",
"You give her a small opening, watching whether she smiles or pulls back.",
"You keep the flirtation soft, close, and easy for her to answer."
],
"flirt_success": [
"You let the conversation turn openly playful and watch whether she follows the heat in it.",
"You flirt with a clearer edge, making your interest visible without grabbing for more.",
"You hold her attention with a warmer tone and let the pause between you lengthen.",
"You let the smile linger a little too long and wait to see if she follows it."
],
"gaze_ass_success": [
"You look at her ass, then meet her eyes again.",
"Your eyes drop to her ass before you look back at her face.",
"You let yourself look at her ass for a second too long.",
"You glance down her body and stop at her ass.",
"You admire her ass openly enough for her to notice.",
"Your eyes settle on her ass with clear interest before you bring your attention back up."
],
"gaze_chest_success": [
"You look at her breasts, then back to her face before it turns crude.",
"You admire her chest openly, but keep your hands still.",
"Your eyes drop to her chest, obvious enough that the attention becomes part of the conversation.",
"Your eyes drop to her chest and linger just long enough to be noticed.",
"Your gaze stays on her chest for a second, then returns to her eyes.",
"You let yourself glance at her chest and do not pretend you did not."
],
"gaze_legs_success": [
"You look her over from her thighs back to her face.",
"Your eyes trace her legs before you look back up.",
"You let your gaze linger on her legs for a second.",
"You notice the line of her legs and make no attempt to hide it.",
"You admire her legs with a quiet, obvious look.",
"Your eyes trace the line of her legs, and she lets the look stay there."
],
"gentle_command_success": [
"You give her a clear instruction and wait for her to follow it.",
"You tell {name} what to do in a low, steady voice.",
"You give the instruction in a low, steady voice and leave no need to repeat it.",
"You give {name} a calm instruction, firm enough to lead without ever turning it into a threat."
],
"guide_position_success": [
"You guide {name} into position with a firm hand and a clear instruction, shaping her posture without rushing her.",
"You guide {name} into position with one hand and give her time to settle.",
"You guide her posture with one hand and a quiet instruction, giving her time to follow.",
"You guide {name} into position with a firm hand and a clear instruction, shaping her posture without ever rushing her."
],
"hold_eye_contact_command_success": [
"You tell {name} to keep her eyes on yours and hold the stare until she obeys.",
"You tell {name} to keep her eyes on you, holding the silence until she answers it.",
"You give her a clear instruction and wait for her to follow it.",
"You tell her to keep looking at you until the silence starts to work."
],
"hug_her_success": [
"You move in for a hug and keep your arms loose enough for her to settle into it.",
"You bring her close for a short hug, warm and careful.",
"You hold her for a few seconds, then let her go before it gets awkward.",
"You wrap your arms around her and keep the hug simple.",
"You hug her without squeezing too hard, giving her time to relax.",
"You draw her into a hug and keep it steady, giving her room to accept the closeness or break it."
],
"inquire_jobs_success": [
"You ask where someone can pick up a job nearby.",
"You ask about paid work in the area.",
"You ask if she knows any work worth taking.",
"You ask where the city has openings right now.",
"You ask what kind of work people actually find around here.",
"You ask about available work in the area, keeping the question practical, not desperate.",
"You ask which places are hiring."
],
"inquire_training_success": [
"You ask about training options in the area.",
"You ask where people train around here.",
"You ask which places are useful for learning new skills.",
"You ask if she knows somewhere worth practicing.",
"You ask where someone goes to improve.",
"You ask about training opportunities with enough focus to make the question sound serious."
],
"introduce_dominant_success": [
"You lead with your name and hold the pause afterward, giving her room to answer the confidence in your voice.",
"You approach with a steady voice and a sharper edge, confident enough that the greeting does not feel casual.",
"You give her your name in a firm voice and wait for hers.",
"You give your name and make it clear you expect hers.",
"You introduce yourself with a firm voice and hold her gaze while she answers."
],
"introduce_success": [
"You give her your name and ask for hers.",
"You introduce yourself and ask her name."
],
"invite_coffee_success": [
"You bring up coffee like something specific you want to share with her.",
"You ask {name} to get coffee with you and wait for her answer.",
"You offer coffee without crowding her for an immediate reaction.",
"You turn the conversation toward coffee and wait to see if she wants the same thing."
],
"invite_gallery_success": [
"You invite {name} to walk through a gallery with you and talk about whatever catches her eye.",
"You mention a gallery nearby and ask if she would like to see it with you.",
"You ask {name} to visit a gallery with you.",
"You ask her to come to a gallery with you, leaving the answer open.",
"You turn the conversation toward gallery and wait to see if she wants the same thing."
],
"invite_meal_success": [
"You suggest a meal at your place, with you handling the kitchen.",
"You ask {name} to come by your place for a meal you will prepare.",
"You invite {name} over and offer to cook dinner yourself.",
"You offer {name} dinner at your place and tell her you will cook.",
"You tell {name} you have ingredients ready and want to cook for her.",
"You invite {name} to sit down for dinner at your place.",
"You offer to cook something simple and spend a couple of hours together.",
"You ask {name} to come over for dinner and a quiet evening."
],
"invite_private_movie_failure": [
"You try to bring up a movie, but {name} gives you a short answer and lets it end.",
"You ask about a movie, but {name} gives you a short answer and lets it end.",
"{name} hears the private part more than the movie part and turns it down.",
"You make the attempt, but {name} keeps the conversation brief.",
"The invitation feels too transparent, and she does not follow it."
],
"invite_private_movie_success": [
"You invite {name} over for a private movie, letting the excuse and the privacy sit side by side.",
"You suggest watching a movie somewhere private and let the implication sit there.",
"You invite {name} over to watch a movie alone with you.",
"You offer private movie without crowding her for an immediate reaction.",
"You turn the conversation toward private movie and wait to see if she wants the same thing."
],
"invite_room_success": [
"You invite {name} to your place, keeping the offer clear enough that she understands the privacy behind it.",
"You bring up your place like something specific you want to share with her.",
"You invite {name} back to your place and wait for her answer.",
"You offer your place without crowding her for an immediate reaction.",
"You turn the conversation toward your place and wait to see if she wants the same thing."
],
"invite_workout_success": [
"You suggest training together and make it sound like an actual workout, not a pretext.",
"You ask {name} to train with you and suggest doing the workout together.",
"You offer training together without crowding her for an immediate reaction.",
"You turn the conversation toward training together and wait to see if she wants the same thing."
],
"kiss_cheek_success": [
"You lean in and kiss her cheek, brief enough to stay gentle but close enough for her to feel it.",
"Your lips touch her cheek for a second before you pull back and watch her reaction.",
"You kiss her cheek softly, leaving the next move in her hands.",
"You step close and kiss her cheek, leaving it at that."
],
"kiss_lips_success": [
"You lean in and kiss her on the lips, starting soft.",
"You lean in and kiss her lips when she stays close enough to meet you.",
"You move from closeness into a kiss on her lips, waiting for her mouth to answer, not forcing it.",
"Your mouth meets hers for a careful kiss that lasts a few seconds.",
"You kiss her slowly enough for her to kiss back.",
"You keep the first touch of your lips gentle, then let it warm up.",
"You kiss her without rushing for more."
],
"look_eyes_success": [
"You hold her eyes for a few seconds without looking away first.",
"You look at her directly, letting the silence do part of the work.",
"You hold her eyes for a quiet second, long enough for the silence to matter.",
"You meet her gaze and keep your face still.",
"You keep eye contact long enough for her to notice.",
"You watch her face instead of looking away."
],
"make_her_hold_still_success": [
"You tell {name} to hold still, making your control clear through your voice before your hands do anything more.",
"You tell {name} to stay still, watching whether the command makes her freeze or lean in.",
"You tell {name} to hold still, making your control unmistakable through your voice before your hands do anything more.",
"You give her a clear instruction and wait for her to follow it."
],
"massage_back_success": [
"You keep the massage steady, focusing on the place you chose.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"You work down her back with steady hands, pressing into each tight place until her breathing changes.",
"You work down her back with steady palms, pressing into each tight place until her breathing changes."
],
"massage_legs_success": [
"You keep the massage steady, focusing on the place you chose.",
"Your hands start at her calves and work upward, keeping the pressure useful and clean.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"You press in carefully and let your hands do the work.",
"Your hands work along her legs with steady pressure, keeping the touch useful before it turns intimate.",
"Your steady hands work along her legs with steady pressure, keeping the touch useful before it turns intimate.",
"Your palms work along her legs with steady pressure, keeping the touch useful before it turns intimate."
],
"massage_neck_success": [
"You keep the massage steady, focusing on the place you chose.",
"You place your thumbs at the base of her neck and work them into the tight muscle.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"You press in carefully and let your hands do the work.",
"Your fingers move slowly along her neck, avoiding the spots that make her tense.",
"Your fingers work along her neck until her shoulders start to loosen.",
"Your fingers move along her neck, easing around the sensitive spots."
],
"massage_shoulders_success": [
"You keep the massage steady, focusing on the place you chose.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"Your thumbs press into the knots at the tops of her shoulders.",
"Your steady thumbs work into her shoulders, pressing out the tension without letting the massage turn hungry."
],
"massage_start_success": [
"You offer a massage and start with her shoulders, keeping the first touch nonsexual.",
"You keep the massage steady, focusing on the place you chose.",
"You begin with her shoulders, letting the first pressure feel safe before anything else.",
"You offer a massage and begin with careful, nonsexual pressure, letting her decide whether your palms are welcome.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"You press in carefully and let your hands do the work."
],
"player_undress": [
"You take your clothes off while {name} watches.",
"You remove your own clothes first, exposing yourself without forcing her to follow.",
"You strip down slowly enough for her reaction to catch up."
],
"refusal_admire_outfit": [
"You openly admire her outfit, but {name} notices the look and shuts it down.",
"You let your eyes linger on her outfit, and {name} makes it clear that is enough.",
"You try to make the outfit compliment more visual, but {name} does not welcome it.",
"You look over her outfit with obvious appreciation, and {name} cuts the moment short.",
"You try to admire the way she looks, but {name} does not let it become comfortable."
],
"refusal_ask_about_schedule": [
"You try to bring up her schedule, but {name} gives you a short answer and lets it end.",
"You ask about her schedule, but {name} keeps the answer too vague to use.",
"You ask, but the answer stays clearly no.",
"{name} hears the invitation and keeps the distance where it is.",
"The offer does not get past her caution.",
"{name} shuts the invitation down without leaving it half-open."
],
"refusal_ask_address": [
"You try to continue, but {name} stops it before it goes farther.",
"You ask where she lives, and {name} closes the subject before it becomes personal.",
"You ask, but the answer stays clearly no.",
"{name} hears the invitation and keeps the distance where it is.",
"The offer does not get past her caution.",
"{name} shuts the invitation down without leaving it half-open."
],
"refusal_ask_number": [
"You try to continue, but {name} stops it before it goes farther.",
"You make the offer, but {name} refuses before it can turn into a plan.",
"You ask, but the answer stays clearly no.",
"You ask for her number, but {name} keeps that distance in place.",
"The offer does not get past her caution.",
"{name} shuts the invitation down without leaving it half-open."
],
"refusal_compliment_style": [
"You compliment her style, but {name} keeps the answer short.",
"You mention her outfit, but she does not invite more conversation.",
"You try to make the compliment work, but {name} lets it pass.",
"You say something about her look, and {name} gives you almost nothing back.",
"You compliment the outfit, but she keeps the moment closed."
],
"refusal_deep_kiss": [
"You lean in to deepen the kiss, but {name} turns her mouth away.",
"You try to push the kiss further, and {name} stops it with a hand against you.",
"Your mouth asks for more, but {name} breaks the closeness first.",
"You try to make the kiss hungrier, and {name} cuts it short.",
"The kiss reaches for more than she wants to give, and she pulls back."
],
"refusal_dirty_praise": [
"You turn the praise dirty, but {name} does not accept it.",
"You try to make the compliment more controlling, and she shuts it down.",
"The dirty praise comes too early, and {name} refuses it.",
"You praise her like she already belongs to you, and she rejects it.",
"{name} hears the dirty praise and keeps herself out of your control."
],
"refusal_flirt_bold": [
"You try a bolder flirt, and {name} stops it immediately.",
"You make the line more direct, but she does not let it continue.",
"You push the flirt harder, and {name} cuts it short.",
"You try to make the conversation hotter, but she refuses the turn.",
"The bold line comes too early, and {name} shuts it down."
],
"refusal_flirt_soft": [
"You try a light flirt, but {name} does not smile back.",
"You keep the flirt small, and {name} lets it drop.",
"You try to make the conversation warmer, but she keeps it plain.",
"You offer a soft flirt, and {name} shuts it down early.",
"You test a playful line, but she does not take it."
],
"refusal_gaze_ass": [
"Your eyes move to her ass, and {name} catches the stare.",
"You let the look linger behind her, and she cuts it short.",
"You stare too openly at her ass, and {name} refuses to play along.",
"You try to take in the view, but she notices immediately.",
"Your attention drops behind her, and {name} makes the refusal clear."
],
"refusal_gaze_chest": [
"Your eyes drop to her chest, and {name} catches it.",
"You look at her chest too long, and she pulls your attention back up.",
"You let the glance linger on her chest, but {name} does not let it pass.",
"You stare too openly, and she stops the moment there.",
"Your attention settles too low, and {name} shuts it down."
],
"refusal_gaze_legs": [
"Your eyes drift to her legs, and {name} notices.",
"You let the glance linger on her legs, but she does not welcome it.",
"You look too openly at her legs, and {name} cuts the moment short.",
"You hold the look too long, and she makes it clear you are being obvious.",
"Your attention settles on her legs, and {name} pulls the conversation away from it."
],
"refusal_gentle_command": [
"You give her a simple instruction, but {name} does not follow it.",
"You try to lead her with a command, and she refuses.",
"You tell her what to do, but {name} keeps control of herself.",
"{name} hears the order and leaves it unanswered.",
"The command fails, and she does not move for it."
],
"refusal_guide_position": [
"You try to guide her position, but {name} refuses to move for you.",
"You tell her where to go, and she does not follow the instruction.",
"You reach for control of her posture, but she stops you there.",
"{name} hears the command and keeps her position her own.",
"The order fails before she lets you place her."
],
"refusal_hold_eye_contact_command": [
"You tell her to keep eye contact, but {name} looks away.",
"You order her to watch you, and she refuses the stare.",
"You try to hold her with the command, but she breaks eye contact.",
"{name} hears the order and looks away anyway.",
"The command fails, and her eyes leave yours."
],
"refusal_hug_her": [
"You move in for a hug, but {name} steps back.",
"You try to pull her into a hug, and she keeps the distance between you.",
"You open your arms, but {name} does not step into them.",
"You lean closer for a hug, and she turns the closeness away.",
"You try to make the moment warmer, but {name} refuses the hug."
],
"refusal_inquire_jobs": [
"You try to bring up work, but {name} gives you a short answer and lets it end.",
"You make the attempt, but {name} keeps the conversation brief.",
"You ask about work, but {name} gives you a short answer and lets it end.",
"You push a little, and {name} shuts it down before it becomes personal.",
"You ask about work nearby, but {name} gives you nothing useful."
],
"refusal_inquire_training": [
"You try to bring up training, but {name} gives you a short answer and lets it end.",
"You ask about training, but {name} gives you a short answer and lets it end.",
"You make the attempt, but {name} keeps the conversation brief.",
"You push a little, and {name} shuts it down before it becomes personal.",
"You ask about places to train, but {name} gives you nothing beyond a clipped answer."
],
"refusal_introduce": [
"You start the introduction, but her expression closes before the second sentence.",
"You ask about that, but {name} gives you a short answer and lets it end.",
"{name} hears the greeting and gives it no place to go.",
"You start the introduction, but {name} does not give you room to continue.",
"{name} turns the greeting aside without letting it become familiar."
],
"refusal_introduce_dominant": [
"You make the attempt, but {name} keeps the conversation brief.",
"You try to continue, but {name} does not give you anything more to work with.",
"You ask about that, but {name} gives you a short answer and lets it end.",
"You push a little, and {name} shuts it down before it becomes personal.",
"{name} hears the control in your voice and shuts it down immediately.",
"You open with too much force, and {name} refuses the tone before the introduction can settle.",
"You try to set the tone, but {name} gives you no obedience to build on.",
"You introduce yourself too forcefully, and {name} steps back."
],
"refusal_invite_coffee": [
"You try to bring up coffee, but {name} gives you a short answer and lets it end.",
"You make the offer, but {name} refuses before it can turn into a plan.",
"You ask, but the answer stays clearly no.",
"{name} hears the invitation and keeps the distance where it is.",
"The offer does not get past her caution.",
"{name} shuts the invitation down without leaving it half-open."
],
"refusal_invite_gallery": [
"You try to bring up art, but {name} gives you a short answer and lets it end.",
"You make the offer, but {name} refuses before it can turn into a plan.",
"You ask, but the answer stays clearly no.",
"{name} hears the invitation and keeps the distance where it is.",
"The offer does not get past her caution.",
"{name} shuts the invitation down without leaving it half-open."
],
"refusal_invite_meal": [
"You ask about food, but {name} gives you a short answer and lets it end.",
"{name} turns down the meal invitation before it becomes a plan.",
"{name} refuses the meal with a small shake of her head and keeps the evening closed.",
"{name} does not accept the dinner invite, leaving no time or promise attached to it.",
"You invite her to eat with you and wait for an answer.",
"{name} stops the dinner idea at the invitation, not the details."
],
"refusal_invite_private_movie": [
"You try to bring up a movie, but {name} gives you a short answer and lets it end.",
"You make the offer, but {name} refuses before it can turn into a plan.",
"You ask, but the answer stays clearly no.",
"{name} hears the invitation and keeps the distance where it is.",
"The offer does not get past her caution.",
"{name} shuts the invitation down without leaving it half-open."
],
"refusal_invite_room": [
"You try to bring up some privacy, but {name} gives you a short answer and lets it end.",
"You make the offer, but {name} refuses before it can turn into a plan.",
"You ask, but the answer stays clearly no.",
"{name} hears the invitation and keeps the distance where it is.",
"The offer does not get past her caution.",
"{name} shuts the invitation down without leaving it half-open."
],
"refusal_invite_workout": [
"You try to bring up working out, but {name} gives you a short answer and lets it end.",
"You make the offer, but {name} refuses before it can turn into a plan.",
"You ask, but the answer stays clearly no.",
"{name} hears the invitation and keeps the distance where it is.",
"The offer does not get past her caution.",
"{name} shuts the invitation down without leaving it half-open."
],
"refusal_kiss_cheek": [
"You try the touch, and {name} moves your hand away.",
"You lean in, but she stops you before it goes farther.",
"You start the contact, and {name} ends it with a firm look.",
"You lean toward her cheek for a kiss, but {name} turns away before it lands.",
"You reach for her, but {name} pulls back before the contact can settle."
],
"refusal_kiss_lips": [
"You lean toward her lips, but {name} turns away before the kiss can land.",
"You try the touch, and {name} moves your hand away.",
"You lean in, but she stops you before it goes farther.",
"You start the contact, and {name} ends it with a firm look.",
"You reach for her, but {name} pulls back before the contact can settle."
],
"refusal_look_eyes": [
"You try to hold her gaze, but {name} looks away first.",
"You keep your eyes on hers, and she refuses to stay in the stare.",
"You hold the eye contact too long, and {name} cuts it short.",
"You try to make the look matter, but she does not follow it.",
"The stare gets too heavy, and {name} steps out of it."
],
"refusal_make_her_hold_still": [
"You tell her to hold still, but {name} moves away from the command.",
"You try to keep her still, and she refuses to follow it.",
"You give the order, but she does not let you direct her body.",
"{name} hears the instruction and keeps herself out of your control.",
"The command fails before she gives you obedience."
],
"refusal_massage_back": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} blocks the touch before the massage can shift into that area.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_legs": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} blocks the touch before the massage can shift into that area.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move along her legs, and she pulls them back before you can continue."
],
"refusal_massage_neck": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} blocks the touch before the massage can shift into that area.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"{name} moves your hands away from her neck before the massage starts there.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_shoulders": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} moves away before your hands can settle on her shoulders.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_start": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} blocks the touch before the massage can shift into that area.",
"You offer the massage and move your hands closer, but {name} refuses before you start.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_private": [
"You try to continue, but {name} stops it before it goes farther.",
"You start, but she cuts it short.",
"You make the attempt, and {name} refuses it clearly.",
"You try again, and she keeps you from continuing.",
"You ask, but {name} refuses before the plan can go anywhere."
],
"refusal_public": [
"You try to continue, but {name} stops it before it goes farther.",
"You start, but she cuts it short.",
"You make the attempt, and {name} refuses it clearly.",
"You try again, and she keeps you from continuing.",
"You try to continue, but {name} stops the attempt before it goes further."
],
"refusal_remove_your_clothes": [
"You take off another layer, and {name}'s expression hardens the moment she sees you do it.",
"You strip down further in front of her, and {name} clearly does not like where you took it.",
"You keep undressing, and {name} gets visibly annoyed that you pushed it that far.",
"You remove another piece of clothing, and {name} makes it obvious she is not happy about it.",
"You undress further in front of her, and {name} clearly hates that you pushed it there."
],
"refusal_soft": [
"You try to continue, but {name} stops it before it goes farther.",
"You push a little farther, but she pulls back and ends it.",
"You start, but she cuts it short.",
"You make the attempt, and {name} refuses it clearly.",
"You try to continue, but {name} stops the attempt before it goes further.",
"You make the move, and she shuts it down at once."
],
"refusal_talk_art": [
"You give your opinion on a piece of art, but {name} does not agree with your reading of it.",
"You point out the colours and composition, although your explanation does not convince {name}.",
"You compare two pieces, but {name} thinks you have missed the important difference between them.",
"You describe why you like the work, and {name} asks for a clearer reason.",
"You bring up art, but your point does not give {name} much to answer."
],
"refusal_talk_computers": [
"You suggest a way to fix a computer problem, but {name} finds a step you have overlooked.",
"You explain the software, although {name} still cannot tell what problem it is meant to solve.",
"You describe the settings you would change, but {name} asks you to return to the original problem.",
"You offer a technical explanation, and {name} points out that it does not lead to a usable fix."
],
"refusal_talk_cooking": [
"You describe a recipe, but {name} thinks one of the steps would not work.",
"You explain how you would prepare the meal, although {name} is not convinced by the method.",
"You list the ingredients, but {name} asks about the step you skipped.",
"You suggest a dish, and {name} tells you why she would make something else instead."
],
"refusal_talk_finance": [
"You suggest a way to handle the money, but {name} points out a cost you have left out.",
"You explain the plan, although {name} cannot see how the numbers support it.",
"You talk about the possible profit, but {name} asks what happens if the estimate is wrong.",
"You give a rough figure, and {name} asks for the actual monthly cost.",
"You bring up money and risk, but your estimate does not convince {name}."
],
"refusal_talk_massage": [
"You describe how you would work on a sore muscle, but {name} thinks the pressure sounds too strong.",
"You suggest starting at the painful spot, and {name} tells you she would rather begin around it.",
"You talk about massage, but {name} does not trust a technique that ignores how the person reacts.",
"You explain where you would place your hands, and {name} asks how you would know when to ease off.",
"You recommend more pressure, but {name} says that would only make her tense up."
],
"refusal_talk_music": [
"You describe what you heard in the song, but {name} does not recognise the part you mean.",
"You give your opinion on the track, although {name} hears it differently.",
"You point out the loudest section, but {name} thinks another part matters more.",
"You compare two songs, and {name} is not convinced by the comparison.",
"You try to explain why the track works, but {name} asks for a more specific example."
],
"refusal_talk_photography": [
"You give your opinion on the photograph, but {name} does not agree with your reading of it.",
"You point out the lighting, although your explanation does not convince {name}.",
"You compare the framing of two shots, but {name} thinks you have missed the important difference.",
"You describe why you like the picture, and {name} asks for a clearer reason.",
"You bring up photography, but your point does not give {name} much to answer."
],
"refusal_talk_sports": [
"You suggest a training routine, but {name} thinks it would be too much for a beginner.",
"You explain the exercise, although {name} cannot see how it would help.",
"You talk about training harder, but {name} asks how often somebody could realistically do it.",
"You describe the movement, and {name} points out where somebody could get hurt.",
"You bring up sports, but your example does not give {name} much to answer."
],
"refusal_tease_words": [
"You try a suggestive line, but {name} gives it no room.",
"You let the implication hang, and she cuts it down.",
"You tease her with something suggestive, but she does not take the bait.",
"You try to make the conversation dirtier, and {name} keeps it clean.",
"You push the tease too early, and she shuts it down."
],
"refusal_touch_arm": [
"You reach for her arm, but {name} shifts away.",
"You try a light touch on her arm, and she moves out of it.",
"Your hand finds her arm for a second, then {name} shuts the contact down.",
"You test a simple touch, but she does not let it become casual.",
"You touch her arm lightly, and {name} steps out of reach."
],
"refusal_touch_hand": [
"You reach for her hand, but {name} slips it away.",
"You try to take her hand, and she moves it out of reach.",
"Your fingers move toward hers, but {name} pulls back first.",
"You try a small touch at her hand, and she refuses the contact.",
"You reach for her hand, but the touch never settles."
],
"refusal_whisper_dirty": [
"You lean close to whisper something dirty, but {name} moves away.",
"You lower your voice, and she refuses the dirty turn immediately.",
"You try to make the words private, but she does not let you stay that close.",
"You whisper the dirty line, and {name} cuts the moment short.",
"You lean in with dirty words, but she steps out of the closeness."
],
"schedule_success": [
"You ask what part of her week is usually free.",
"You keep the schedule question practical.",
"You ask which days are easiest for her.",
"You ask when you are most likely to find her.",
"You ask about the subject, and {name} replies without cutting the conversation short.",
"You ask when she is usually free.",
"{name} gives you a real opening in her schedule.",
"{name} thinks it over, then tells you where she is usually supposed to be at that time."
],
"small_talk_success": [
"You start with ordinary small talk and let her decide how much to give back.",
"You give her an easy subject and let the answer stay light.",
"You keep the conversation grounded in something she actually cares about. {name} relaxes and gives you more than a polite answer.",
"You ask about the subject, and {name} replies without cutting the conversation short.",
"The topic gives {name} an easy path into the conversation, and her answer feels less guarded than before.",
"{name} follows the topic long enough for the conversation to feel like it has a real center."
],
"talk_art_success": [
"You ask which piece she would choose to keep and what made her notice it.",
"You point out a colour repeated in two parts of the work and ask what she thinks it changes.",
"You compare two styles and ask which one she would rather see again.",
"You mention a piece with unusual colours and ask which detail she noticed first."
],
"talk_computers_success": [
"You describe a computer problem and ask which part she would test first.",
"You talk through a small technical problem and let her correct the details.",
"You ask whether a simple software change would save enough time to be worth setting up."
],
"talk_cooking_success": [
"You ask what she cooks after a long day when she still wants a proper meal.",
"You ask what she makes when she only has half an hour and one clean pan.",
"You compare two ways of preparing the same ingredients and ask which one she prefers.",
"You describe a simple dish and ask what she would add to it.",
"You ask which meal she has made often enough to stop checking the recipe."
],
"talk_finance_success": [
"You ask how much money she would keep aside before making a large purchase.",
"You compare a safer return with a riskier one and ask which she would choose.",
"You bring up a recurring cost that is easy to overlook and ask how she would budget for it.",
"You talk about money in terms of rent, repairs and the months when income is lower.",
"You ask what she would check before agreeing to borrow money."
],
"talk_massage_success": [
"You ask where she gets sore after work and explain how you would start around that area.",
"You talk about using warmth before working on a tight muscle.",
"You explain how you would increase the pressure slowly and ease off if she tensed up.",
"You ask whether she prefers steady pressure or shorter strokes.",
"You describe a simple way to work on tired hands and wrists.",
"You ask what has helped the last time her shoulders were sore."
],
"talk_music_success": [
"You ask which song she has played most often this week and what keeps bringing her back to it.",
"You compare the live and recorded versions of a song and ask which one she prefers.",
"You point out where the drums change before the chorus and ask if she noticed it too.",
"You bring up a song you only half remember and ask whether she knows it."
],
"talk_photography_success": [
"You compare two photographs of the same person and ask which expression feels more natural.",
"You ask what kind of photograph makes her stop and look twice.",
"You point out how the window light changes the face in one shot.",
"You compare a posed photograph with one taken while the subject was distracted.",
"You ask whether she would keep the wider frame or crop closer to the subject."
],
"talk_sports_success": [
"You ask which kind of exercise she could realistically fit into an ordinary week.",
"You ask what kind of sport feels natural to her and what only looks easy.",
"You describe a beginner routine and ask which part would be hardest to maintain.",
"You compare training alone with joining a class and ask which she would prefer.",
"You ask whether she enjoys exercises based more on control, speed, strength or endurance."
],
"tease_words_success": [
"You tease her with a low, suggestive line and watch how her face changes.",
"You let the words carry the dirty part before your hands do anything.",
"You say something meant to get under her skin and wait for the reaction.",
"You keep the tease verbal, close, and sharp enough to make her notice."
],
"touch_arm_success": [
"You touch her arm lightly and keep your hand still.",
"You brush her arm in passing, then leave the contact there when she does not pull away.",
"You let your hand settle on her arm with a gentle touch.",
"Your fingers rest against her arm for a few seconds.",
"You keep the touch brief, but not accidental.",
"Your fingers brush her arm lightly, close enough to be noticed and brief enough not to trap her."
],
"touch_hand_success": [
"You brush your fingers over her hand and wait for her to leave it there.",
"You let your hand meet hers and keep the contact small.",
"You take her hand lightly, not squeezing until she accepts it.",
"You keep the hand contact simple and warm.",
"Your hand finds hers, letting the contact start small before it asks for anything more.",
"Your fingers stay around hers for a few seconds."
],
"whisper_dirty_success": [
"You lean close and lower your voice, making the dirty words private enough to feel physical.",
"You whisper the line near her ear and let the silence after it do part of the work.",
"You keep your voice low, turning the words into something meant only for her.",
"You lean close and whisper something dirty where only she can hear it.",
"You say it softly enough that she has to stay near you to hear the rest."
]
}
END_SCENE_DESCRIPTIONS_NONSEX %//% SCENE_BANK
{
"default_success": [
"{name} follows the moment without making it feel automatic. Her reaction gives you a clearer read on what might work next.",
"{name} lets the action land, not with blind agreement, but with enough interest to keep the scene moving."
],
"default_fail": [
"{name} pulls the rhythm back before it turns awkward. It is not a disaster, but the pressure clearly needs correcting.",
"{name} refuses the timing more than the idea itself, making the boundary clear without making the whole encounter collapse."
],
"introduce_success": [
"You introduce yourself clearly. {name} gives you her name back and asks what brought you over.",
"The greeting lands cleanly, and {name} answers with enough interest for the conversation to start.",
"{name} accepts the introduction with a short reply, still guarded but no longer ignoring you."
],
"small_talk_success": [
"You keep the conversation grounded in something she actually cares about. {name} relaxes and gives you more than a polite answer."
],
"flirt_success": [
"{name} catches the meaning in your voice and does not shut it down. The tension warms because you let her answer it at her pace."
],
"invite_room_success": [
"{name} hesitates, weighs the privacy against what she knows about you, then agrees. The public noise drops away once you are alone."
],
"ask_number_success": [
"{name} gives you her number, warning you not to make her regret it."
],
"undress": [
"{name} lets the last pieces of clothing shift aside slowly, making the moment feel exposed instead of automatic. Her eyes stay on you while she decides to keep going.",
"{name} strips with a tense little breath, then stands close enough that the lack of clothing becomes part of the pressure between you."
],
"breasts": [
"You palm {name}'s breasts and squeeze firmly enough to make her breath catch.",
"You press your lips to {name}'s nipple, then drag your tongue over it until her chest lifts into your mouth.",
"Your hands cup her tits and test the weight of them, thumbs finding her nipples through the growing heat.",
"You work her breasts with your mouth and hands, teasing each nipple until she stops hiding the reaction."
],
"touch": [
"Your hand moves over {name} with careful pressure. She tenses at first, then starts reacting in smaller, harder to hide ways.",
"You keep the touch slow enough for her to accept it, but direct enough that she knows exactly what you want."
],
"clit": [
"You press your thumb to {name}'s clit and roll it in careful circles until her thighs start to part.",
"You rub {name}'s clit with two fingertips, slow at first, then firmer as her wetness gives you clearer feedback.",
"Your fingers work her clit in tight circles, keeping the pressure steady when her thighs start to tremble.",
"You tease her clit until her wet slit starts twitching under your hand.",
"Your thumb pins her swollen clit in a steady rhythm while your other fingers spread her folds."
],
"finger_pussy": [
"You slide your fingers into {name}'s wet cunt and curl them until her hips start chasing your hand.",
"Your fingers push into her soaked pussy, slow at first, then deeper when her inner walls tighten around you.",
"You work your hand between her thighs, finding the wet heat of her slit before pressing inside with a steady curl.",
"Your thumb keeps pressure near her clit while your fingers pump inside her cunt, building the rhythm instead of rushing it.",
"{name}'s pussy slicks your fingers as you keep moving, each curl making her tighten harder around your hand.",
"Your fingers slide inside {name}'s soaked cunt and settle into a wet, deliberate rhythm.",
"You finger her with a steady pace, feeling her slit pull slickly around each movement.",
"Your hand fucks her pussy in short, controlled strokes until her breathing starts breaking around the pressure."
],
"oral_receive": [
"Your mouth settles between {name}'s thighs, licking her pussy with wet, deliberate strokes until her hips start answering.",
"You drag your tongue through her slit and up to her clit, learning the pressure that makes her breath break.",
"The oral starts slow, your lips and tongue teasing her cunt open before focusing where she needs it most.",
"You lick her clit until her thighs tighten around your head and her wet pussy starts guiding the rhythm for you.",
"Your tongue works over her slit, tasting the wetness building there before returning to the spot that makes her tremble.",
"You stay between her legs and use your mouth on her pussy until her breathing turns sharp and needy.",
"The wet heat of her cunt spreads over your lips while you lick her with a steadier, hungrier rhythm.",
"Your tongue presses against her clit, then drags lower through her slit, making her hips lift toward your mouth."
],
"facesitting": [
"{name} lowers her pussy over your mouth, thighs tightening around your head as your tongue finds her clit.",
"She settles above you and lets you lick her from underneath, her wet slit pressing closer with every breath.",
"Her body hovers over your mouth for a second before she gives in and grinds her cunt against your tongue.",
"{name} sits on your face carefully at first, then lets her hips follow the rhythm when your mouth starts working.",
"Her pussy covers your mouth and she has to steady herself as your tongue starts licking her from below."
],
"sixty_nine": [
"{name} accepts the shift into 69, lowering herself into position until your mouth is between her thighs and hers is around your cock.",
"You guide {name} into 69 and she follows, flushed and eager, her thighs framing your face while her mouth settles around you.",
"The position locks in with her pussy over your mouth and your cock against her lips, both of you forced into the same messy rhythm.",
"She adjusts over you until your tongue reaches her slit and her mouth can take your cock without either of you staying passive.",
"The 69 starts uneven and hungry, your tongue working her cunt while her lips and hand answer around your shaft."
],
"oral_give": [
"{name} lowers her mouth to your cock and starts carefully, then grows bolder when your reaction tells her what works.",
"Her lips close around the head of your cock first, tongue testing you before she takes more.",
"She starts sucking your dick with controlled patience, watching for the moment restraint turns into need.",
"Her mouth works down your shaft in slow passes, wet heat replacing the teasing pause.",
"She keeps one hand at the base while her lips and tongue learn the shape of your cock."
],
"sex": [
"You push inside {name}'s wet pussy slowly, giving her cunt time to take the stretch before the rhythm becomes real.",
"{name} pulls you closer as penetration replaces anticipation, her soaked cunt tightening around your cock.",
"Your cock slides into her pussy, and the first full push makes the heat between you turn immediate and physical.",
"You sink into her wet slit with a careful thrust, then hold there while her body adjusts to the fullness.",
"The sex starts with one slow push into her cunt, deep enough to make the room narrow to her breath and your cock."
],
"missionary": [
"You settle over {name} in missionary and enter her with your cock, slow and steady. She watches your face as her legs tighten around you.",
"Your hips pin her open while your cock works into her pussy, the close angle making every breath feel exposed.",
"You fuck her face to face, driving into her cunt while her legs hold you close.",
"The missionary rhythm turns deep and intimate, your cock pushing into her wet slit while she watches every reaction.",
"You stay over her and thrust steadily, letting her pussy take you with no room to hide from the closeness."
],
"cowgirl": [
"{name} straddles you and lowers herself onto your cock, taking the depth at her own pace.",
"She rides you in cowgirl, her wet pussy sliding down until she has you buried exactly where she wants.",
"Her hips start moving over you, cunt swallowing your cock in slow, deliberate drops.",
"{name} controls the angle from above, grinding and lifting until the ride turns slick and confident.",
"She uses her weight to take you deeper, riding your cock until the rhythm belongs to her."
],
"doggy": [
"{name} gets on all fours and glances back as you line up behind her. The first thrust into her pussy makes her composure falter.",
"You take her from behind, hands on her hips while her cunt stretches around your cock.",
"The doggy angle drives deeper, her ass lifting toward you as your cock pumps into her wet pussy.",
"You fuck her from behind in steady strokes, watching her hips rock into every thrust.",
"Her pussy takes you from the back, slick and tight while your hands keep her in place."
],
"wall": [
"You keep {name} standing against the wall while your cock pushes into her, the urgent angle making every movement harder to hide.",
"Her back presses to the wall as you lift into her wet pussy, holding her steady through each thrust.",
"You fuck her against the wall, cock driving up into her while her legs fight to keep the position.",
"The standing angle turns rough and close, her cunt gripping you while the wall takes the force.",
"You hold her against the wall and keep thrusting until her wet slit starts taking the rhythm."
],
"breast_sex": [
"{name} presses her breasts around your cock and holds them tight while you slide between them.",
"You move between her tits, the pressure slick and focused as she squeezes them together around your shaft.",
"Her breasts close around you, soft and tight enough that every thrust drags heat up toward the head of your cock.",
"She keeps her chest pressed together while you fuck between her breasts, watching your reaction as the rhythm turns messy.",
"The titfuck becomes slicker with every pass, her nipples hard while she holds the pressure steady.",
"You thrust between her breasts until the tight slide of her skin starts pulling you toward the edge."
],
"anal_talk": [
"You talk about her ass in a low voice, letting the filthy idea sit between you before anything touches her.",
"You tell {name} exactly what you want to do with her ass and watch the thought start working on her.",
"The anal talk stays verbal for now, but the image of her tight little asshole being opened is already in the room.",
"You keep your voice low and dirty, making her imagine your mouth, fingers, or cock at her ass before you move."
],
"anal_play": [
"You tease {name}'s ass with slow, testing pressure, circling her tight little asshole until she exhales and stops pulling away.",
"Your fingers spread her just enough to play with her puckered hole, keeping it careful while the idea turns filthy.",
"You keep the anal touch slow, rubbing and circling until her ass starts answering the attention."
],
"anal_finger": [
"You work a finger into {name}'s ass with careful patience, feeling her tight little asshole clench hard around the first push.",
"Your fingertip presses past the ring of her ass, slow and steady, until she starts breathing through the stretch.",
"You finger her ass carefully, letting her tight hole adjust before curling deeper."
],
"anal_sex": [
"You enter {name}'s ass slowly, giving her tight hole time to stretch around your cock before the rhythm becomes demanding.",
"Your cock pushes into her ass with steady pressure, and you hold the pace until her body can take more.",
"The anal sex starts rougher in feeling than in speed, her asshole squeezing hard around every careful inch.",
"You fuck her ass slowly at first, letting the tight heat grip your shaft before each deeper thrust.",
"Her ass takes you inch by inch, the pressure filthy and controlled as you build the first rhythm."
],
"orgasm": [
"{name}'s body locks up as the orgasm hits, thighs shaking while her wetness gives away how hard it landed.",
"{name} comes with a broken moan, pussy clenching through the peak as her control slips for a few seconds.",
"The orgasm rolls through {name} in visible waves, her hips twitching and her breath breaking until it passes.",
"Her climax hits hard enough to interrupt the rhythm, leaving her trembling, wet, and unable to answer right away.",
"{name} shudders through the orgasm, cunt pulsing as the last of the pleasure drains out of her."
],
"refusal_soft": [
"{name} gives you a small shake of the head. The timing, tone, or pressure is wrong right now."
],
"refusal_public": [
"{name} catches your intent and steps back before it can become obvious in public."
],
"refusal_private": [
"{name} stops the private moment from moving faster. The room is not enough by itself."
],
"refusal_sex": [
"{name} tenses and stops the escalation before it becomes sex. She is not ready for that."
],
"refusal_anal": [
"{name} shuts that down immediately. Her ass is not something you get just because the mood is hot."
],
"casual_heat_success": [
"The casual topic cuts across the arousal in the room. {name} answers, but the rhythm cools and the moment loses some of its pull.",
"{name} gives you a short answer, then glances back at the space between you. The conversation lands, but it drags the arousal down with it."
],
"casual_heat_failure": [
"{name} stares at you like you just changed the subject at the worst possible second. The mood drops hard.",
"The question lands badly. {name} pulls back, irritated that you broke the tension for casual talk."
],
"casual_heat_success_hot": [
"{name} answers through a tight breath, but it is obvious she does not want conversation right now. The arousal slips while she tries to follow your topic.",
"You get a reply, barely. {name}'s expression says the subject could have waited, and the moment cools around the interruption."
],
"casual_heat_failure_hot": [
"{name} pulls away at once. Talking about that now feels absurd, and the arousal between you collapses into irritation.",
"The interruption kills the rhythm. {name} looks annoyed, not shy, and the mood turns colder than it was a second ago."
],
"strip_ask": [
"You ask instead of grabbing for the answer. {name} studies you, then lets the next layer come away because the mood has earned it.",
"{name} accepts the request with a slow breath, making the undressing feel chosen instead of automatic."
],
"strip_attempt": [
"Your hands test the clothing layer. {name} notices immediately, waits a beat, then allows the movement because the pressure stays readable.",
"{name} lets your hands finish the layer, but the look she gives you says the next move still has to be earned."
],
"petting": [
"Your hands move into suggestive caressing, sliding over {name}'s waist, hips, and thighs until the intent is impossible to miss.",
"You keep the petting slow and patient, letting your palms trace closer to the places she has not offered yet.",
"The touch turns heavier, your fingers dragging over fabric, curves, and warm skin without pretending it is innocent.",
"Your hands move over her through the fabric, slow enough to read her reaction and direct enough that she knows exactly what you want.",
"You keep the caress steady until {name} stops treating it like an accident, her breathing changing under the weight of your hand."
],
"massage_start": [
"{name} accepts the massage and turns enough to let you work, letting your hands settle into the first safe pressure.",
"You start the massage with patient hands, keeping the contact useful before it becomes anything more.",
"The massage begins simply: sore muscle, steady pressure, and enough quiet for {name} to decide how much she trusts your hands."
],
"massage": [
"The massage lands well. {name} relaxes under your hands and lets the room slow down.",
"Your hands find a rhythm that makes {name} stop guarding every inch of herself."
],
"massage_escalate": [
"The massage stops being only relief when your hands linger lower and {name} lets the bolder touch stay.",
"The safe rhythm starts turning sexual. {name} notices the change and stays under your hands instead of ending it.",
"Your hands carry the massage toward something dirtier, and {name}'s silence gives the escalation room to happen."
],
"refusal_strip_ask": [
"{name} refuses the request without making a scene. That layer is staying where it is for now."
],
"refusal_strip_attempt": [
"{name} stops your hands. The attempt was too much, too soon."
],
"refusal_petting": [
"{name} catches your hand before the touch can settle. She is not ready for that kind of pressure yet."
],
"refusal_massage": [
"{name} notices where the massage is going and stops your hands before you can pretend it was accidental."
],
"refusal_massage_start": [
"{name} declines the massage. She is not giving you that much access right now."
],
"refusal_massage_escalate": [
"{name} catches the escalation and shuts it down. The massage ends there."
],
"refusal_massage_chaste": [
"The massage does not really land. {name} shifts under your hands and tells you to ease up on the pressure."
],
"try_top_off": [
"You try to move the clothing layer. {name} notices your hands and allows the layer to come away."
],
"refusal_try_top_off": [
"{name} catches the attempt and stops your hands. That layer is not coming off like that."
],
"ask_bra_off": [
"You ask {name} to remove her bra. She studies the request, then lets the clothing question become part of the tension."
],
"refusal_ask_bra_off": [
"{name} refuses the request. That clothing layer stays where it is."
],
"try_bottom_off": [
"You try to move the clothing layer. {name} notices your hands and allows the layer to come away."
],
"refusal_try_bottom_off": [
"{name} catches the attempt and stops your hands. That layer is not coming off like that."
],
"ask_panties_off": [
"You ask {name} to remove her panties. She studies the request, then lets the clothing question become part of the tension."
],
"refusal_ask_panties_off": [
"{name} refuses the request. That clothing layer stays where it is."
],
"ask_top_off": [
"You ask {name} to remove her top. She studies the request, then lets the clothing question become part of the tension."
],
"refusal_ask_top_off": [
"{name} refuses the request. That clothing layer stays where it is."
],
"unhook_bra": [
"You try to move the clothing layer. {name} notices your hands and allows the layer to come away."
],
"refusal_unhook_bra": [
"{name} catches the attempt and stops your hands. That layer is not coming off like that."
],
"ask_bottom_off": [
"You ask {name} to remove her bottoms. She studies the request, then lets the clothing question become part of the tension."
],
"refusal_ask_bottom_off": [
"{name} refuses the request. That clothing layer stays where it is."
],
"remove_panties": [
"You try to move the clothing layer. {name} notices your hands and allows the layer to come away."
],
"refusal_remove_panties": [
"{name} catches the attempt and stops your hands. That layer is not coming off like that."
],
"strip_together": [
"You suggest undressing together. {name} understands the implication immediately: no hiding behind half measures, no pretending this is casual."
],
"refusal_strip_together": [
"{name} refuses the request. That clothing layer stays where it is."
],
"ask_naked": [
"You ask {name} to undress completely. She takes in the request, then lets the last layers fall because the scene has finally reached that point."
],
"refusal_ask_naked": [
"{name} refuses the request. That clothing layer stays where it is."
],
"caress_thigh": [
"Your hand moves along {name}'s thigh with slow intent. She feels the suggestion in the touch before it goes any higher."
],
"refusal_caress_thigh": [
"{name} shifts her thigh away before your hand can settle. The contact was too direct for the moment."
],
"pet_over_clothes": [
"You touch {name} through her clothes, keeping the pressure patient enough for her body to answer before your hands demand more."
],
"refusal_pet_over_clothes": [
"{name} pulls your hand away from the fabric before the caress can turn into something heavier."
],
"rub_breasts_fabric": [
"You rub {name}'s breasts through the fabric, letting the layer drag over her nipples with slow teasing pressure.",
"Your palms work over her tits through her clothes, feeling her nipples harden under the cloth.",
"You keep the fabric between your hand and her breasts, using it to make each pass slower and more deliberate."
],
"refusal_rub_breasts_fabric": [
"{name} blocks your hand at her chest before the fabric can become an excuse to keep going."
],
"rub_pussy_fabric": [
"You press two fingers against {name}'s pussy through the fabric, rubbing slowly until the cloth starts dragging wetly over her slit.",
"Your hand cups her between the legs and works her through the last layer, letting the fabric grind over her clit before anything comes off.",
"You keep the pressure outside her clothes, rubbing her pussy through the fabric until the barrier turns from protection into friction."
],
"refusal_rub_pussy_fabric": [
"{name} closes her thighs and catches your wrist before your fingers can keep rubbing through the fabric."
],
"refusal_finger_pussy": [
"{name} stops your hand before your fingers can reach her pussy."
],
"grind_together": [
"You press close and grind your hard cock against her slit, keeping it outside while the friction turns filthy.",
"You hold her against you and rub your cock along her pussy without entering, letting the wet heat build between bodies.",
"Your hips move against hers in slow grinding strokes, cock dragging over her covered or bare slit without pushing inside.",
"You keep the grinding outside her pussy, using the pressure until her hips start meeting yours."
],
"refusal_grind_together": [
"{name} pulls back before your bodies can settle into the grind."
],
"massage_shoulders": [
"You massage her shoulders with firm, useful pressure, working the tight muscle until she starts to loosen under your hands."
],
"refusal_massage_shoulders": [
"The massage her shoulders misses the right pressure. {name} corrects your hands, unimpressed by the technique, but the massage itself is not over."
],
"massage_neck": [
"You massage her neck slowly, thumbs working under the tension while she lets her head tip just enough to help you."
],
"refusal_massage_neck": [
"The massage her neck misses the right pressure. {name} corrects your hands, unimpressed by the technique, but the massage itself is not over."
],
"massage_back": [
"You work down her back with steady hands, pressing into each tight spot until her breathing starts to slow."
],
"refusal_massage_back": [
"The massage her back misses the right pressure. {name} corrects your hands, unimpressed by the technique, but the massage itself is not over."
],
"massage_lower_back": [
"Your hands settle at her lower back, kneading the sore muscle with enough patience to make her hips soften."
],
"refusal_massage_lower_back": [
"Your hands move too low on her back, and she shifts away from the pressure."
],
"massage_legs": [
"You massage her legs from knee to thigh, keeping the touch firm, slow, and careful enough for her to relax into it."
],
"refusal_massage_legs": [
"The massage her legs misses the right pressure. {name} corrects your hands, unimpressed by the technique, but the massage itself is not over."
],
"massage_inner_thighs": [
"Your hands move to her inner thighs, rubbing slowly enough to stay a massage while making the nearness to her pussy impossible to ignore."
],
"refusal_massage_inner_thighs": [
"Your hands move up her inner thighs, and she closes her legs before you can get higher."
],
"massage_pussy_fabric": [
"Your massage hand drifts between her thighs and starts rubbing her pussy through the fabric, turning the careful pressure into something much dirtier.",
"The massage crosses the line when your fingers find the cloth over her slit and begin working it in slow, wet circles.",
"You keep the contact over the last layer, grinding the fabric against her clit until the massage is no longer pretending to be innocent."
],
"massage_pussy_bare": [
"Your fingers find bare skin between her thighs and start rubbing her wet slit directly, turning the massage into explicit pussy play.",
"The massage becomes sexual the moment your hand reaches her bare cunt, fingertips sliding through her folds instead of stopping at safe pressure.",
"You spread her with your fingers and rub her exposed pussy in slow, deliberate circles, letting the oil-slick rhythm turn filthy."
],
"refusal_massage_pussy_fabric": [
"{name} notices the shift through the fabric and stops your hand. The massage ends there.",
"She catches what you are trying to turn the massage into, closes her thighs, and the mood drops sharply."
],
"refusal_massage_pussy_bare": [
"{name} feels the move go too far and stops you before the massage can pretend to be a massage anymore.",
"She reads the escalation immediately, moves your hand away, and the massage is over."
],
"continue_fingering": [
"Your fingers keep working inside {name}'s pussy, curling and pressing until her hips start following your hand.",
"You slide your fingers deeper into her wet slit, using the rhythm that makes her thighs tense around your wrist.",
"{name}'s cunt slicks your fingers as you keep moving, each curl making her body answer harder.",
"You keep your fingers inside her and use your thumb near her clit, building pressure without letting the rhythm fall apart.",
"Your hand works between her legs, wet and deliberate, until her pussy tightens around your fingers.",
"You finger her with a steady pace, feeling her slit pull slickly around each movement.",
"You keep your fingers inside her soaked cunt, curling deeper whenever her hips answer.",
"Your hand keeps fucking her pussy in a wet, steady rhythm."
],
"continue_cunnilingus": [
"{name} shifts closer instead of pulling away, her thighs framing your face as your tongue keeps working her cunt.",
"She catches her breath and holds herself in place, trying not to lose the rhythm of your mouth on her pussy.",
"{name} stops trying to sound composed. Her hips lift toward your mouth as the licking turns wet, steady, and impossible to ignore.",
"Your tongue keeps working her cunt with a rhythm that is no longer exploratory. {name} holds the position and lets the pleasure build.",
"You stay between her thighs, dragging your tongue over her slit until her breathing breaks into smaller, less controlled sounds.",
"The licking continues, wetter and more focused, each pass of your tongue making {name} tense and soften in waves.",
"You keep licking {name}, staying with the rhythm that makes her hips press her pussy toward your mouth.",
"Your mouth stays locked to her cunt, patient enough to build the feeling and hungry enough not to let it fade."
],
"continue_blowjob": [
"{name} keeps her mouth around your cock, using her tongue whenever she pulls back to the head.",
"Her lips slide along your shaft in a wet rhythm, hand stroking the base while her mouth takes what it can.",
"She sucks harder when your cock twitches, learning how to keep you trapped in the sensation.",
"Her tongue circles the head while her fingers keep pumping, turning the blowjob sharper and more focused.",
"{name} keeps the rhythm steady, mouth and hand working together until your restraint starts to crack."
],
"continue_sex": [
"You keep fucking {name} in the rhythm she already accepted, adjusting the angle until her breathing turns broken and eager.",
"{name} stays with you as the sex keeps building, her cunt slicking around your cock before she can make herself sound composed.",
"The position holds, but the feeling sharpens. {name} clings to the rhythm as every thrust drives your cock deeper.",
"You keep thrusting into her wet pussy, each stroke dragging more heat and slickness from her.",
"Her cunt keeps taking you in a steady, wet rhythm, tightening whenever the angle hits deep."
],
"continue_anal": [
"You keep fucking {name}'s ass with a slow, heavy rhythm, letting her tight hole squeeze around every thrust.",
"The anal continues carefully, your cock sliding deeper whenever her breathing steadies enough to take it.",
"Her asshole clenches around you with each stroke, tight and hot while you keep the pace controlled.",
"You stay buried in her ass and move with patient pressure, making every inch count.",
"The rhythm turns steadier, her ass opening around your cock while the dirty fullness builds."
],
"refusal_continue_state": [
"The rhythm breaks before you can keep it going, and {name} uses that pause to slow everything down."
],
"massage_breasts": [
"Your massage reaches her breasts, hands working over her tits while your thumbs find her nipples.",
"{name}'s breath catches when your palms settle on her breasts and the massage stops pretending to be innocent.",
"You rub her chest slowly, kneading her tits with enough pressure to make her nipples stiffen under your hands.",
"The breast massage turns hotter as your hands cup, squeeze, and circle until her chest rises into the touch."
],
"massage_ass": [
"Your hands move over her ass, squeezing and spreading her cheeks while the massage turns lower and dirtier.",
"{name} tenses for a second when your palms settle on her ass, then eases as you knead the softness with deliberate pressure.",
"You rub her ass slowly, thumbs pressing near the crease without rushing the next step.",
"The massage shifts to her round ass, each squeeze making the line between care and lust harder to pretend around."
],
"refusal_massage_breasts": [
"Your hands move toward her breasts, and she catches your wrists before you can touch them.",
"Her body goes still under your hands. She moves you away from her chest and ends the massage right there."
],
"refusal_massage_ass": [
"Your hands move to her ass, and she shifts away before you can knead it.",
"She stops you before you can pretend it was still part of the massage. The moment closes down."
],
"massage_tongue_pussy": [
"She gasps sharply as your tongue finds her wet pussy.",
"Her thighs tremble while you lick her soaked cunt.",
"Thick juices coat your tongue as she moans softly.",
"She spreads her legs wider, clearly enjoying the pussy licking.",
"Her pussy drips heavily as your tongue works her clit.",
"A needy whimper escapes her while you eat her out.",
"Her hips roll against your mouth, chasing the pleasure.",
"She stays dripping wet and responsive to every lick.",
"Her cunt pulses against your tongue as arousal builds.",
"She bites her lip hard, lost in the wet pussy pleasure."
],
"refusal_massage_tongue_pussy": [
"{name} closes her thighs before your mouth can settle there. The massage ends on the spot.",
"The move is too sudden. {name} pulls back from your mouth, and the massage breaks immediately."
],
"massage_tongue_ass": [
"She freezes for a second when your mouth reaches her ass, then exhales as your tongue starts circling her tight hole.",
"The massage turns filthy as you spread her and lick her asshole with slow, deliberate pressure.",
"Your tongue works her ass carefully, turning the relaxed position into a dirty little trust test.",
"She trembles under the rimming, thighs tensing while her pussy grows wetter from the taboo pressure."
],
"refusal_massage_tongue_ass": [
"{name} pulls her ass away before your tongue can get there. The massage ends sharply.",
"She catches the rimming attempt immediately and moves out of reach before it can continue."
],
"massage_strip_warning": [
"{name} catches the clothing move and gives you one clear warning, but she does not end the massage yet.",
"{name} stops your hands for a moment. The warning is obvious: slower, or the massage ends."
],
"massage_strip_break": [
"{name} catches another clothing move and decides the massage is done.",
"That second kind of mistake costs the mood. {name} ends the massage before you can recover it."
],
"control_success": [
"{name} catches the control in your tone and adjusts, not because it is easy, but because the mood makes it hard to ignore.",
"You hold the frame without overexplaining it. {name} hesitates, then follows your lead."
],
"control_refusal": [
"{name} does not follow that lead and the moment loses some of its edge."
],
"climax_pants": [
"You lose control while still dressed, keeping most of the mess to yourself. {name} notices the restraint more than the cum."
],
"climax_hands": [
"You stroke yourself until cum spills into your hand.",
"Your orgasm stays in your own hand, contained but still visibly intense.",
"Your cock pulses in your fist until cum streaks over your fingers."
],
"climax_body": [
"You finish across her naked body, the orgasm leaving hot cum streaked over her skin.",
"Your cock pulses and unloads over her body while she stays close enough to watch it happen.",
"Thick cum lands across her body as the tension finally breaks."
],
"climax_boobs": [
"You finish over her breasts, cum streaking across her tits and nipples.",
"Her chest rises under the first hot ropes of cum as you unload on her breasts.",
"You paint her tits with cum while she watches the mess spread."
],
"climax_stomach": [
"You finish across her stomach, hot cum spreading over her belly.",
"Your load lands on her stomach in thick streaks while she breathes hard.",
"You unload across her belly and watch the mess settle on her skin."
],
"climax_crotch": [
"You finish close to her pussy, cum landing across her lower belly and crotch.",
"The risky finish leaves hot cum streaked near her wet folds.",
"You unload near her crotch while she holds still through the messy finish."
],
"climax_face": [
"You finish on her face, your cock pulsing as cum lands across her cheeks and lips.",
"The facial lands hot and messy, leaving her face marked by your orgasm.",
"You unload across her face while she stays in place for your cum."
],
"climax_mouth": [
"You finish into her mouth, thick cum pulsing over her tongue.",
"Her lips stay around you as your orgasm fills her mouth.",
"You unload into her mouth while she holds still and takes the cum."
],
"climax_inside": [
"You come deep inside her pussy, your cock pulsing while her cunt clenches around you.",
"Your orgasm floods her soaked pussy while she stays locked around you.",
"You finish buried inside her, filling her cunt with every twitch."
],
"climax_inside_ass": [
"You come deep inside her ass, the tight heat squeezing every pulse from your cock.",
"Your orgasm fills her asshole while her body trembles around the pressure.",
"You finish inside her ass and hold still until the last pulse fades."
],
"climax_throat": [
"{name} takes the deep finish and stays locked into the rhythm until it is over."
],
"climax_blocked": [
"{name} sees you about to cum where she refused and blocks you. You still cum, but not where you wanted."
],
"schedule_success": [
"{name} gives you a real piece of her week instead of a vague answer.",
"{name} thinks it over, then tells you where she is usually supposed to be at that time."
],
"refusal_ask_about_schedule": [
"{name} does not give you anything useful about her schedule.",
"{name} keeps the answer vague enough that you cannot use it."
],
"ask_address_success": [
"{name} gives you her address, making it possible to find her during home schedule slots.",
"{name} tells you where she lives, but her tone makes it clear that showing up still has to go well."
],
"refusal_ask_address": [
"{name} does not trust you with her address yet.",
"{name} avoids the question and keeps that boundary in place."
],
"continue_analingus": [
"{name} stays in position, tense at first, then softer as your tongue keeps the analingus slow and deliberate.",
"Her breath catches when you circle her asshole again, but she does not move away.",
"{name} holds still for you, flushed and overwhelmed, letting the taboo rhythm continue as long as you keep it controlled.",
"You keep rimming her, tongue working her tight hole until the dirty pleasure starts making her wetter.",
"Her ass stays spread for your mouth, and each careful lick makes her hips give a little more."
],
"cont_finger_to_mouth": [
"You keep your fingers moving as your mouth lowers to her clit. {name} gasps at the double pressure, hips jumping when tongue and hand finally work together.",
"Your fingers stay inside her while your tongue takes over the sensitive rhythm above. {name} grips anything she can reach as both sensations hit at once.",
"The transition is smooth: fingers curling inside her cunt, mouth settling between her thighs, your tongue finding the rhythm your hand had built.",
"You finger her soaked pussy while licking her clit, turning one kind of pressure into two before she can recover."
],
"cont_cunni_to_sex": [
"You rise from between her thighs and guide your cock to her while she is still wet and trembling.",
"Your mouth leaves her clit only long enough for your hips to replace it, the first thrust sliding into her soaked cunt.",
"You turn the licking into penetration without breaking the mood, pushing into her pussy while she is still riding the aftertaste of your mouth.",
"Her wet slit is already open from your tongue when your cock presses in and turns oral heat into sex.",
"You leave her pussy with your mouth and fill it with your cock before the rhythm can fade."
],
"cont_cunni_to_analingus": [
"Your tongue drifts lower from her pussy, slow enough to let her understand the change before your mouth reaches her ass.",
"You leave her clit wet and sensitive, tracing lower until the teasing becomes analingus.",
"The oral rhythm changes target without losing control, your tongue settling lower against her tight hole.",
"You drag the wetness down from her slit and start rimming her, cautious, filthy, and deliberate.",
"Your mouth moves from her pussy to her ass, turning the same wet rhythm into a dirtier kind of attention."
],
"cont_analingus_to_cunni": [
"You move your tongue back up to her pussy, letting the taboo tension melt into familiar wet pressure.",
"The analingus fades into cunnilingus as your mouth returns to the heat between her thighs.",
"You shift back to her pussy, dragging the sensation upward until her hips remember the old rhythm.",
"Your tongue leaves her asshole and finds her slit again, making her exhale hard as the pleasure turns easier to take.",
"You return to her cunt with slow licks, using the wetness there to pull her back into the rhythm."
],
"cont_analingus_to_anal": [
"You stop licking long enough to line your cock up with her ass, letting the analingus become a careful, heavier escalation.",
"The teasing at her ass turns into something more serious as your cock replaces your tongue at her tight hole.",
"You trade tongue for penetration with slow control, turning the analingus into anal sex without losing the careful rhythm that got you there.",
"Her asshole is wet from your mouth when your cock starts pressing in, making the escalation filthy and unmistakable.",
"You move from rimming to anal, holding steady as her tight little asshole learns the new pressure."
],
"cont_sex_to_anal": [
"You slow the thrusts long enough to change the angle, letting vaginal sex become a careful anal transition instead of a sudden demand.",
"The rhythm pauses on the edge of something rougher. You guide {name} carefully until your cock lines up with her ass.",
"You pull from her wet pussy and press against her tight asshole, waiting for her body to accept the new pressure.",
"The shift from cunt to ass turns the room sharper, your cock slick from her pussy as it starts pressing into her other hole.",
"You trade the wet slide of her pussy for the tight pressure of her ass, moving only when she can take it."
],
"cont_sex_to_69": [
"You break the thrusting and turn the heat into mutual oral, pulling {name} into a position where your mouth finds her pussy while hers lowers to your cock.",
"{name} follows the shift into 69, still flushed from being fucked, and the two of you trade thrusting for mouths, tongues, and uneven breath.",
"The sex pauses with her pussy still wet from your cock, then changes shape as she lowers her mouth and you find her clit again.",
"You turn the position until her cunt is over your mouth and your cock is ready for hers, keeping the heat alive in a different rhythm."
],
"refusal_cont_sex_to_anal": [
"{name} stops the angle change before it becomes too much. The refusal is clear, but the heat does not have to collapse unless you keep pushing.",
"{name} tightens and pulls the rhythm back. \"No. Not there right now.\""
],
"refusal_cont_sex_to_69": [
"{name} does not follow the repositioning, keeping you in the current rhythm instead. \"Not that. Stay with what is working.\"",
"{name} shakes her head before the shift settles. The idea is not dead, but the timing is wrong."
],
"continue_sixty_nine": [
"The 69 keeps its rhythm: your tongue works her cunt while her mouth answers with a warmer, wetter pace.",
"You both keep going, mouths and hips fighting for control of the same moment.",
"The position turns greedy and uneven, her thighs tense around your head as the mutual rhythm gets hotter.",
"Her lips tighten around your cock whenever your tongue finds her clit, breaking her rhythm for a second.",
"You keep licking her pussy while she sucks you, both of you getting messier with every broken breath."
],
"cont_hj_to_bj": [
"Her hand keeps stroking until you guide the rhythm higher, and {name} understands the invitation. She lowers her mouth to your cock without breaking the pace.",
"You let her hand lead the way, then draw her closer until her mouth takes over. {name} keeps stroking the base while her lips settle into rhythm.",
"The handjob turns into a blowjob as her mouth closes around the head and her fingers keep your shaft steady.",
"She strokes you until your cock is slick enough for her lips to take over, replacing her hand with wet heat."
],
"cont_bj_to_sex": [
"You pull {name} up from your lap and guide her closer, letting the heat from her mouth turn into the first press of sex.",
"Her mouth leaves your cock only because your hands bring her closer. Her thighs open, your hips line up, and the blowjob turns into full sex.",
"You take your cock from her lips and push it into her wet pussy, carrying the same hungry momentum into penetration.",
"The blowjob ends with her still breathless, and the next rhythm starts when your cock slides inside her cunt."
],
"cont_69_to_sex": [
"You break the 69 only long enough to turn the bodies around. {name} is still wet from your tongue when you line up with her.",
"The mutual oral collapses into something simpler and deeper. You move over {name}, guide yourself inside, and she answers with a moan.",
"Her mouth leaves your cock as your hips take over, the first thrust sliding into the same wet pussy your tongue just worked.",
"You trade the messy 69 for penetration, pushing into her cunt while the taste of her is still on your mouth."
],
"refusal_cont_hj_to_bj": [
"{name} keeps her hand where it is and stops the escalation with a look. 'Not my mouth. Not yet.'",
"She turns her cheek away from the suggestion, still holding you but refusing to move lower. 'Do not rush the shape of this.'"
],
"refusal_cont_bj_to_sex": [
"{name} pulls back before the position can change, breathing hard. 'No. We stay here or we slow down.'",
"She stops you with a hand on your hip. 'My mouth was one thing. Sex is another.'"
],
"refusal_cont_69_to_sex": [
"{name} shifts away from the attempted turn, thighs tightening as she breaks the rhythm. 'Not from this. Do not skip the answer.'",
"She catches the change before it becomes penetration, flushed but firm. 'Keep your mouth where it was, or stop.'"
],
"reverse_cowgirl": [
"{name} turns around on top of you and rides in reverse cowgirl, her ass moving over you while her pussy takes your cock.",
"She faces away and sinks down slowly, giving you a full view of her ass as she rides.",
"The reverse angle lets her control the depth while her wet cunt slides along your shaft.",
"Her hips bounce in reverse cowgirl, ass lifting and dropping as she works herself on your cock.",
"She leans forward and rides you backwards, showing off every wet inch she takes."
],
"anal_missionary": [
"You stay over {name} in anal missionary, keeping the pressure slow as your cock stretches her ass.",
"Face to face, you push into her tight little asshole and wait for her breath to steady before moving again.",
"The close angle makes the anal feel heavier, your cock buried in her ass while she watches you handle the pace.",
"You keep her under you and fuck her ass slowly, each controlled thrust making her tighten around you.",
"Her ass opens around your cock in missionary, private and intense enough to make every inch feel deliberate."
],
"anal_doggy": [
"You take {name}'s ass in doggy style, moving carefully through the first tight pressure.",
"Her hips stay lifted as your cock works into her asshole from behind.",
"The doggy angle makes the anal deeper, your hands holding her steady while her tight ass stretches around you.",
"You fuck her ass from behind in controlled strokes, watching her body take each inch.",
"Her ass grips your cock hard from the doggy angle, filthy and tight with every thrust."
],
"anal_cowgirl": [
"{name} rides you anally from above, controlling the pressure while her ass takes your cock.",
"She lowers herself onto you carefully, tight asshole stretching as she decides how much she can take.",
"The anal cowgirl starts slow, her hips working down until your cock is buried in her ass.",
"She controls the ride from above, ass clenching around you whenever she pauses on the depth.",
"Her body rocks over you, using her weight to take your cock into her ass by careful degrees."
],
"anal_reverse_cowgirl": [
"{name} rides you anally in reverse cowgirl, facing away while her ass works down your cock.",
"She gives you the view of her ass taking you, hips lifting and dropping with controlled pressure.",
"The reverse angle shows every inch of your cock disappearing into her tight asshole.",
"She leans forward and rides your cock with her ass, slow enough to own the stretch.",
"Her ass moves over you in reverse cowgirl, clenching whenever she sinks too deep."
],
"anal_wall": [
"{name} faces the wall while you take her ass from behind, steadying her through the pressure.",
"You press her to the wall and push into her asshole slowly, keeping one hand on her hip until she can take more.",
"Her palms brace against the wall while your cock stretches her ass from behind.",
"You fuck her ass against the wall in controlled thrusts, every push forcing her to stay steady.",
"The wall keeps her in place while her tight little asshole opens around your cock."
],
"climax_back": [
"{name} lets you finish across her ass, staying close enough to see how badly you needed it.",
"The ending lands across her ass, using the same messy cum as the body finish but from the available image angle."
],
"refusal_ask_low_scene": [
"{name} pulls back sharply.",
"{name} refuses at once.",
"{name} shuts it down.",
"{name} gives you a hard look.",
"{name} cuts the moment off.",
"{name} rejects it immediately.",
"{name} steps away.",
"{name} stiffens.",
"{name} stops you cold.",
"{name} makes the refusal clear."
],
"refusal_ask_normal_scene": [
"{name} pulls back.",
"{name} shakes her head.",
"{name} refuses.",
"{name} stops the moment.",
"{name} does not follow.",
"{name} steps back.",
"{name} closes off.",
"{name} hesitates, then refuses.",
"{name} keeps the boundary.",
"{name} turns the moment down."
],
"refusal_beg_low_scene": [
"{name} pulls back sharply.",
"{name} refuses at once.",
"{name} shuts it down.",
"{name} gives you a hard look.",
"{name} cuts the moment off.",
"{name} rejects it immediately.",
"{name} steps away.",
"{name} stiffens.",
"{name} stops you cold.",
"{name} makes the refusal clear."
],
"refusal_beg_normal_scene": [
"{name} pulls back.",
"{name} shakes her head.",
"{name} refuses.",
"{name} stops the moment.",
"{name} does not follow.",
"{name} steps back.",
"{name} closes off.",
"{name} hesitates, then refuses.",
"{name} keeps the boundary.",
"{name} turns the moment down."
],
"refusal_command_low_scene": [
"{name} pulls back sharply.",
"{name} refuses at once.",
"{name} shuts it down.",
"{name} gives you a hard look.",
"{name} cuts the moment off.",
"{name} rejects it immediately.",
"{name} steps away.",
"{name} stiffens.",
"{name} stops you cold.",
"{name} makes the refusal clear."
],
"refusal_command_normal_scene": [
"{name} pulls back.",
"{name} shakes her head.",
"{name} refuses.",
"{name} stops the moment.",
"{name} does not follow.",
"{name} steps back.",
"{name} closes off.",
"{name} hesitates, then refuses.",
"{name} keeps the boundary.",
"{name} turns the moment down."
],
"continue_cunnilingus_tease": [
"Your tongue circles her clit slowly, teasing her without giving full pressure.",
"You lick around her soaked entrance, keeping her desperate and dripping.",
"Your mouth stays close to her pussy, giving light flicks and kisses that never quite become enough.",
"You drag your tongue lazily across her wet folds, denying deeper pressure.",
"Soft teasing licks keep her pussy throbbing and needy.",
"Your tongue moves in slow, frustrating patterns around her cunt."
],
"continue_cunnilingus_fingers": [
"You slide two fingers deep into her cunt while licking her clit.",
"Your fingers pump inside her soaked pussy as your tongue works her swollen clit.",
"You finger-fuck her steadily while sucking on her clit.",
"Thick juices coat your fingers as you lick and thrust at the same time.",
"You curl your fingers against the spot inside her while your mouth works her clit.",
"Your hand fucks her cunt rhythmically while your tongue keeps her clit pinned in wet pressure."
],
"massage_vagina": "pool:massage",
"actionMap": {
"gaze_ass": "pool:social"
},
"slide_inside_panties_public": [
"You keep the rubbing hidden in public, then slide your hand inside {name}'s panties and find her wet slit under the fabric.",
"Your fingers slip beneath the waistband instead of staying outside it, still hidden by her clothes while you rub her pussy directly.",
"You move from fabric to skin, hand tucked inside her panties while your fingers tease the slick heat between her legs."
],
"refusal_slide_inside_panties_public": [
"You try to slip your hand inside {name}'s panties, but the public risk makes her clamp down and stop you before your fingers get under the fabric.",
"Your hand reaches for the waistband, but {name} catches your wrist before the hidden touch becomes direct.",
"You try to push the public rubbing further, but she blocks your hand before it can slide inside her panties."
]
}
END_SCENE_BANK %//% SCENE_DESCRIPTIONS_SEX
{
"against_wall_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You press {name} against the wall and guide your cock into her pussy while holding her there.",
"You slide inside her cunt and let her body adjust around you."
],
"anal_anal_position_switch": [
"You change the anal position slowly, keeping your cock inside her ass while she adjusts.",
"You reposition her carefully around the stretch, not pulling out of her tight asshole.",
"The position changes with your cock still buried in her ass.",
"You guide her into a new position, letting her asshole clench around every slow movement.",
"Your cock stays inside her as the anal sex shifts into a different position."
],
"anal_cowgirl": [
"You keep your hips controlled while her ass opens around your cock.",
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"{name} lowers herself onto your cock anally, controlling each inch with her hips."
],
"anal_cowgirl_success": [
"You keep your hips controlled while her ass opens around your cock.",
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"{name} lowers herself onto your cock anally, controlling each inch with her hips."
],
"anal_doggy": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You move behind {name} and push your cock into her ass in doggy style, slow enough to let her adjust.",
"You move behind {name} and push your cock into her ass in doggy style, steady enough to let her adjust."
],
"anal_doggy_success": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You move behind {name} and push your cock into her ass in doggy style, slow enough to let her adjust.",
"You move behind {name} and push your cock into her ass in doggy style, steady enough to let her adjust."
],
"anal_finger": [
"You press a fingertip to her asshole and wait for her body to loosen before easing in.",
"You spread her ass with one hand and work a slick finger against her tight hole.",
"Your finger presses against her asshole, slow and careful, then starts working her ass open.",
"Your finger presses against her asshole carefully, then starts working her ass open with slow pressure.",
"Your finger presses against her asshole, steady and careful, then starts working her ass open."
],
"anal_missionary": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"You settle close and press your cock into {name}'s ass in anal missionary, watching her face as she adjusts.",
"You settle close and press your cock into {name}'s ass, watching her face as she adjusts."
],
"anal_missionary_success": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"You settle close and press your cock into {name}'s ass in anal missionary, watching her face as she adjusts.",
"You settle close and fuck {name}'s ass while watching her face for every reaction."
],
"anal_play": [
"You keep the attention on her ass, testing the tight ring with slow pressure.",
"You spread her ass enough to lick her asshole slowly.",
"Your fingers and mouth keep her ass exposed before anything heavier starts.",
"You spread her ass and tease her asshole with slow pressure, keeping the focus on anal play before full penetration.",
"You keep her ass exposed and work the tight ring with your fingers and mouth before anything heavier starts."
],
"anal_pleasure": [
"Your cock moves through her tight asshole inch by inch.",
"You fuck her ass with slow, deliberate thrusts.",
"You keep your hips close while her ass grips you.",
"You push deeper into her ass and hold there before thrusting again.",
"Your cock moves in her ass with slow, controlled pressure.",
"Your cock moves steadily in her ass with slow, controlled pressure.",
"Your cock moves in her ass with slow, steady thrusts.",
"You keep the anal strokes controlled, letting her take the stretch."
],
"anal_reverse_cowgirl": [
"You keep your hips controlled while her ass opens around your cock.",
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"{name} turns away and rides your cock anally in reverse cowgirl, her ass working down your shaft."
],
"anal_reverse_cowgirl_success": [
"You keep your hips controlled while her ass opens around your cock.",
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"{name} turns away and rides your cock anally in reverse cowgirl, her ass working down your shaft."
],
"anal_sex": [
"Your cock stretches her asshole open, inch by inch.",
"Your hips drive into her from behind, cock buried in her ass.",
"You line your cock with her ass and push in until she has to brace herself.",
"You fuck her ass with short thrusts while she holds herself still.",
"You keep fucking her tight asshole until her body shakes under you."
],
"anal_talk": [
"You talk about her ass in a low voice, making the filthy idea clear before anything touches her.",
"You bring up anal carefully, watching whether the idea makes her close off or listen.",
"You let the conversation move toward her ass without pretending it is innocent.",
"You describe the thought plainly, keeping your hands back while she processes it.",
"You make the anal suggestion verbal first, giving her room to answer before it becomes physical."
],
"anal_talk_success": [
"You talk about her ass in a low voice, making the filthy idea clear before anything touches her.",
"You bring up anal carefully, watching whether the idea makes her close off or listen.",
"You let the conversation move toward her ass without pretending it is innocent.",
"You describe the thought plainly, keeping your hands back while she processes it.",
"You bring up her ass in a low voice and wait for her answer."
],
"anal_wall": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"You pin {name} against the wall and press your cock into her ass with careful, controlled force."
],
"anal_wall_success": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"You pin {name} against the wall and press your cock into her ass with careful, controlled force."
],
"analingus_pleasure": [
"You bring your mouth to her ass and use your tongue with careful strokes.",
"You spread her ass enough to lick her asshole slowly.",
"Your tongue circles her asshole with slow, filthy patience.",
"Your tongue circles her asshole with slow, filthy patience, staying there until her body starts to loosen.",
"Your tongue circles her asshole with careful, filthy patience."
],
"ask_anal_sex_success": [
"You ask for her ass directly. When she agrees, you line your cock up with her asshole and ease in slowly.",
"You ask to fuck her ass, and once she gives you permission, you press the head of your cock to her asshole.",
"You ask for anal and wait for her answer before pushing into her ass inch by inch."
],
"ask_blowjob_success": [
"You ask {name} to put her mouth on your cock, and she lowers herself until her lips close around the head.",
"You ask for her mouth. When she agrees, she leans down and takes your cock between her lips.",
"You ask for a blowjob, and she answers by wrapping her lips around your cock."
],
"ask_bottom_off": [
"You ask her to take her bottoms off and wait for her answer.",
"You ask for the lower layer, keeping the request to her bottoms for now.",
"You let your hand hover near her waistband and ask before anything moves."
],
"ask_bottom_off_success": [
"You ask her to take her bottoms off. When she agrees, she slides them down and leaves her panties in view.",
"She accepts the request and steps out of her bottoms, exposing her thighs and underwear.",
"The bottoms come off after she agrees, leaving her lower body one layer closer to bare.",
"She removes her bottoms for you, keeping her panties on while she watches your reaction."
],
"ask_bra_off": [
"You ask her to take off her bra and wait for her answer.",
"You ask her to take off her bra.",
"You let your attention settle on her bra and ask if she will remove it."
],
"ask_bra_off_success": [
"You ask her to remove her bra. When she agrees, the clasp opens and her bare tits come into view.",
"She accepts the request and slips the bra away, leaving her chest exposed.",
"She unhooks her bra and slips the straps from her shoulders.",
"She removes her bra slowly enough for you to see the moment her tits are bare."
],
"ask_footjob_success": [
"You ask for her feet on your cock. She shifts closer, traps you between her soles, and starts rubbing.",
"You ask her for a footjob, and she sets both feet around your cock before the first stroke.",
"You ask her to use her feet, and she answers by pinning your shaft between her soles."
],
"ask_handjob_success": [
"You ask her to use her hand on your cock. She reaches down, wraps her fingers around you, and starts stroking.",
"You ask for a handjob, and she answers by closing her fingers around your shaft.",
"You ask her to stroke you, and her hand settles around your cock in a slow first pull."
],
"ask_naked": [
"You ask her to get completely naked and wait for her answer.",
"You ask her to take off every remaining layer.",
"You tell her you want to see all of her and leave the choice to her."
],
"ask_naked_success": [
"You ask her to get completely naked. When she agrees, every remaining layer comes off.",
"She accepts the full request and strips until nothing covers her body.",
"She removes the last pieces after agreeing, leaving her breasts, pussy, and ass exposed.",
"The final layers come off, and she stands naked in front of you."
],
"ask_panties_off": [
"You ask her to take her panties off and wait for a clear answer.",
"You ask for the last layer between you and her pussy.",
"You let your attention drop to her panties and ask if she will remove them."
],
"ask_panties_off_success": [
"You ask her to take her panties off. When she agrees, she slides them down and exposes her pussy.",
"She accepts the request and removes the last fabric covering her wet slit.",
"She slides her panties down until her pussy is bare.",
"She slips her panties down slowly, letting you see her cunt once the fabric is gone."
],
"ask_permission_finger_success": [
"You ask if you can use your fingers. When she lets you, you slide your hand between her thighs and ease one finger into her pussy.",
"You ask permission to finger her, and once she agrees, your fingertips spread her wet slit.",
"You ask if she wants your fingers, then slide one into her pussy."
],
"ask_permission_oral_success": [
"You ask to go down on her. When she agrees, you lower your mouth between her thighs and lick her pussy.",
"You ask if she wants your mouth, and when she opens her thighs, your tongue finds her slit.",
"You ask to taste her before settling between her legs and licking up to her clit."
],
"ask_sex_success": [
"You ask {name} if she wants your cock inside her. When she agrees, you guide yourself to her pussy and push in slowly.",
"You ask to fuck her, and when she lets you, you line up with her slit and ease inside.",
"You ask for sex directly. Once she accepts, you spread her thighs and slide your cock into her wet pussy."
],
"ask_titfuck_success": [
"You ask for a titfuck, and she gets close enough to press her breasts around your cock.",
"You ask her to use her tits, and when she agrees, she squeezes them around your shaft.",
"You ask to fuck her tits, and she leans in until your cock is trapped between her breasts."
],
"ask_top_off": [
"You ask her to take her top off and wait for her answer before reaching for anything.",
"You ask for the top layer first, keeping the request limited to that piece of clothing.",
"You point your attention to her top and ask if she will remove it for you."
],
"ask_top_off_success": [
"You ask her to take her top off. When she agrees, she lifts it away and leaves her upper body more exposed.",
"You ask for the top layer, and she answers by pulling it up and off.",
"She accepts the request and removes her top, watching how you look at the layer underneath.",
"She lifts her top over her head and drops it out of the way."
],
"beg_anal_sex_success": [
"You beg for her ass until she gives you the angle, then you press into her asshole inch by inch.",
"Your begging finally makes her offer her ass, and you start slowly with the head of your cock.",
"You plead for anal until she lets you line up behind her and push in carefully."
],
"beg_blowjob_success": [
"You beg for her mouth, and she finally leans down, taking your cock between her lips.",
"You beg for a blowjob until she gives in and closes her mouth around the head of your cock.",
"Your pleading gets her onto her knees, and her lips start working over your cock."
],
"beg_cunnilingus_success": [
"You beg to taste her until she opens her thighs, letting you put your mouth on her pussy.",
"Your begging gets her legs apart, and your tongue goes straight to her wet slit.",
"You plead for her pussy until she lets your mouth settle between her thighs."
],
"beg_footjob_success": [
"You beg for her feet until she gives in, pressing both soles around your cock and stroking you off.",
"Your begging gets her feet around your cock, and she starts rubbing you between her soles.",
"You plead for a footjob until she traps your cock under her feet."
],
"beg_handjob_success": [
"You beg for her hand until she gives in, closing her fingers around your cock and starting a slow stroke.",
"Your begging gets her hand on your cock, and she begins stroking while watching your reaction.",
"You plead for her touch until her palm wraps around your shaft."
],
"beg_sex_success": [
"You beg to fuck her, and when she finally gives in, you push your cock into her wet pussy before she can change her mind.",
"You beg for her pussy until she opens her thighs, then you line up and slide inside.",
"You beg for sex, then guide your cock into her cunt."
],
"beg_sixty_nine_success": [
"You beg for sixty-nine until she climbs into position, her mouth finding your cock as yours settles between her thighs.",
"Your begging gets her into sixty-nine, and mutual oral starts with her lips on your cock and your mouth on her pussy.",
"You plead for mutual oral until she turns with you and brings her pussy to your mouth."
],
"beg_titfuck_success": [
"You beg for her tits until she gives in, pulling them around your cock and letting you thrust between them.",
"Your begging gets her chest against you, and she cups her tits around your cock.",
"You plead for a titfuck until she exposes enough to slide your shaft between her breasts."
],
"breast_sex": [
"You push your cock through her tits in slow, slick passes.",
"She squeezes her tits around your cock and lets you thrust between them.",
"{name} presses her tits around your cock and holds them tight while you slide between them.",
"Your shaft slides between her breasts while she holds them tight."
],
"breast_sex_success": [
"You push your cock through her tits in slow, slick passes.",
"She squeezes her tits around your cock and lets you thrust between them.",
"{name} presses her tits around your cock and holds them tight while you slide between them.",
"Your shaft slides between her breasts while she holds them tight."
],
"breasts": [
"You press your lips to {name}'s nipple, then drag your tongue over it until her chest lifts into your mouth.",
"You work her breasts with your mouth and hands, teasing each nipple until she stops hiding the reaction.",
"You cup her tits and rub your thumbs over her nipples.",
"You palm {name}'s breasts and squeeze firmly enough to make her breath catch.",
"You cup her tits and work your thumbs over her nipples until her chest starts answering the touch."
],
"caress_thigh": [
"You place your hand on her thigh and let it move slowly enough for her to stop you.",
"Your fingers trace along her thigh, staying close without rushing higher.",
"You rest your hand on her thigh, then slide it a little closer when she does not pull away.",
"You caress her thigh with light pressure, testing how much intimacy she will allow."
],
"caress_thigh_success": [
"Your hand slides along her thigh, and she lets the touch stay.",
"Her thigh warms under your palm as your fingers trace higher.",
"Your hand slides along her thigh, stopping before you push any higher.",
"Your fingers move along her thigh slowly, stopping before the touch becomes a grab."
],
"climax_back": [
"You pull out and finish across her ass and back, marking her from behind.",
"You pull out and come across her ass and back, marking her from behind.",
"You pull free and cum across her back, the first streak landing between her shoulders.",
"You brace over her from behind and spill over her back and ass.",
"You get close and aim your cum where she can feel it."
],
"climax_blocked": [
"You start to lose control, but {name} keeps you from cumming where you wanted.",
"You get close to cumming there, but {name} redirects you before the first pulse lands.",
"You try to aim your orgasm, and she stops you in time.",
"She moves away from the shot, leaving the mess on your own hand and stomach.",
"She blocks the target before you can cum there, and you end up spilling over yourself.",
"She refuses the place you aimed for, and your cum lands away from her instead."
],
"climax_blocked_back": [
"{name} keeps her back out of reach, and your cum lands on you instead.",
"{name} blocks the target before you can cum there, forcing the orgasm away from her.",
"She turns aside at the last second, and you lose it without marking her back.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not across her back."
],
"climax_blocked_body": [
"{name} pulls her body away, and your cum lands on you instead.",
"{name} blocks the target before you can cum there, forcing the orgasm away from her.",
"She turns aside at the last second, and you lose it without marking her body.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not across her skin."
],
"climax_blocked_boobs": [
"{name} keeps her tits out of reach, and your cum lands on you instead.",
"{name} blocks the target before you can cum there, forcing the orgasm away from her chest.",
"She pulls her breasts away at the last second, and you lose it without marking her tits.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not across her tits."
],
"climax_blocked_crotch": [
"{name} keeps her crotch out of reach, and your cum lands on you instead.",
"{name} blocks the target before you can cum there, forcing the orgasm away from her pussy.",
"She turns her hips aside at the last second, and you lose it without marking her slit.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not across her crotch."
],
"climax_blocked_face": [
"{name} turns her face away, and your cum lands on you instead.",
"{name} blocks the target before you can cum there, forcing the orgasm away from her face.",
"She pulls her face aside at the last second, and you lose it without marking her mouth or cheeks.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not across her face."
],
"climax_blocked_hands": [
"{name} keeps her hands away from your cock, and your cum lands on you instead.",
"{name} blocks the target before you can cum into her palms.",
"She pulls her hands back at the last second, and you lose it over yourself instead.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not into her hands."
],
"climax_blocked_inside": [
"She makes you pull out before the orgasm can land inside her pussy.",
"{name} blocks the target before you can cum inside her.",
"She keeps the creampie from happening and forces the orgasm away from her cunt.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not inside her pussy."
],
"climax_blocked_inside_ass": [
"She makes you pull out before the orgasm can land inside her ass.",
"{name} blocks the target before you can cum inside her ass.",
"She keeps the anal creampie from happening and forces the orgasm away from her asshole.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not inside her ass."
],
"climax_blocked_mouth": [
"{name} keeps her mouth away from your cock, and your cum lands on you instead.",
"{name} blocks the target before you can cum in her mouth.",
"She pulls her mouth back at the last second, and you lose it over yourself instead.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not on her tongue."
],
"climax_blocked_pants": [
"{name} refuses to let you cum against her, and the mess lands on you instead.",
"{name} blocks the target before you can grind the orgasm against her.",
"She moves away at the last second, and you lose it without using her body.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not against her."
],
"climax_blocked_stomach": [
"{name} keeps her stomach out of reach, and your cum lands on you instead.",
"{name} blocks the target before you can cum across her belly.",
"She pulls her stomach away at the last second, and you lose it without marking her skin.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not across her stomach."
],
"climax_blocked_throat": [
"{name} keeps her throat away from your cock, and your cum lands on you instead.",
"{name} blocks the target before you can cum down her throat.",
"She pulls off at the last second, and you lose it over yourself instead.",
"{name} refuses that target and makes you take the orgasm somewhere else.",
"You cum anyway, but not down her throat."
],
"climax_body": [
"You finish across her body, cum streaking hot over her skin.",
"You unload over her, leaving warm cum across her stomach and body.",
"You cum across her skin in messy pulses.",
"You let the orgasm spill over her body instead of holding back.",
"You finish on her, leaving cum visible across her skin."
],
"climax_boobs": [
"You aim over her tits and cum across her nipples in thick streaks.",
"You finish over her breasts, your cum spreading across her tits and chest.",
"You cum over her tits, the first hot ropes landing across her nipples.",
"You unload across her breasts while she holds still under the mess.",
"You finish on her tits, cum glazing her skin in warm streaks."
],
"climax_crotch": [
"You finish across her lower belly and crotch, cum landing close to her pussy.",
"You come across her lower belly and crotch, cum landing close to her pussy.",
"You finish across her lower belly and crotch, your cum landing close to her pussy.",
"You pull out and cum across her lower belly, close enough for the mess to reach her pussy.",
"You get close and aim your cum where she can feel it."
],
"climax_face": [
"You aim high and cum across her face, streaking her cheeks and mouth.",
"You finish over her face, hot cum landing across her lips, chin, and cheeks.",
"You stroke through the last seconds and paint her face with cum.",
"You cum across her face in thick streaks, close enough for some to hit her mouth.",
"You let the orgasm spill over her face, marking her skin with cum."
],
"climax_hands": [
"You stroke yourself into her waiting hands and spill cum across her fingers.",
"You finish into her palms, your cock twitching against her grip.",
"You stroke yourself until cum spills into your hand.",
"You handle the cum yourself, stroking until it spills into your hand.",
"You stroke yourself until your cum spills into your hand."
],
"climax_inside": [
"You stay buried in her pussy and cum deep while her cunt tightens around you.",
"You push in close and unload inside her wet cunt.",
"You cum inside her pussy, cock pulsing while her inner walls grip you.",
"You hold your hips against hers and fill her cunt with cum.",
"You finish deep inside her, your cock twitching as her pussy takes every pulse."
],
"climax_inside_ass": [
"You stay deep in her ass and cum while her asshole clenches around your cock.",
"You press in close and unload inside her tight asshole.",
"You cum inside her ass, pulsing deep while her hole grips you.",
"You keep her ass stretched around you and finish without pulling out.",
"You empty yourself in her ass, your cock buried while her body tightens around it."
],
"climax_mouth": [
"You push the head of your cock onto her tongue and cum into her mouth in hot pulses.",
"You hold your cock at her lips and unload across her tongue.",
"You cum into her mouth, thick spurts landing on her tongue while she stays close.",
"You press against her open mouth and let the orgasm spill over her tongue.",
"You finish in her mouth, cock twitching as your cum hits her tongue and lips."
],
"climax_pants": [
"You grind through the last second and finish messily in your own clothes.",
"You grind through the last second and come messily in your own clothes.",
"You grind through the fabric and cum in your clothes, the mess trapped against your skin.",
"You finish hard, body tightening as you cum.",
"You get close and aim your cum where she can feel it."
],
"climax_stomach": [
"You stop holding back and let your orgasm take over.",
"You finish across her stomach, hot cum spreading over her belly.",
"You come across her stomach, hot cum spreading over her belly.",
"You finish across her stomach, hot cum spreading over her belly.",
"You finish across her stomach, warm cum spreading over her belly."
],
"climax_throat": [
"You push deep and cum in her throat while she holds herself around your cock.",
"You bury your cock deep enough for her throat to take your cum.",
"You cum down her throat in hard pulses, held there by her mouth and tight swallow.",
"You keep her on your cock and unload deep in her throat.",
"You finish deep in her mouth, the last pulses forced toward her throat."
],
"clit": [
"You keep your fingers on her swollen clit, rubbing until her hips start to move.",
"You tease her clit until her wet slit starts twitching under your hand.",
"Your fingers find her clit and rub it in short strokes until her thighs twitch.",
"You rub {name}'s clit with two fingertips, slow at first, then firmer as her wetness gives you clearer feedback.",
"You rub her clit until her breath catches."
],
"cont_69_focus_her_success": [
"You settle into sixty-nine, your mouth on her pussy while hers works your cock.",
"You keep licking her as she takes your cock into her mouth.",
"You line up together so your tongue can stay on her clit while she sucks you.",
"You focus your tongue on her pussy during sixty-nine, giving her more pleasure than you take for yourself."
],
"cont_69_grind_success": [
"You keep your mouth on her pussy while your hips start pushing your cock more deliberately into her mouth.",
"You hold the sixty-nine position and grind upward, making her mouth take more of your cock while your tongue stays on her cunt.",
"You press your hips into the position, trying to turn her sucking into something closer to a mouthfuck without leaving her pussy alone.",
"Your tongue stays between her thighs as your hips push your cock deeper against her tongue.",
"You use the locked position to grind into her mouth, forcing the mutual oral to become rougher on both sides."
],
"cont_69_keep_success": [
"You settle into sixty-nine, your mouth on her pussy while hers works your cock.",
"You trade focus back and forth, mouth on pussy and mouth on cock.",
"You keep licking her clit while her lips slide along your cock.",
"You keep licking her as she takes your cock into her mouth.",
"You line up together so your tongue can stay on her clit while she sucks you.",
"You keep the position tight enough for both of you to keep working."
],
"cont_69_let_her_focus_you_success": [
"You settle into sixty-nine, your mouth on her pussy while hers works your cock.",
"You keep licking her as she takes your cock into her mouth.",
"You hold back and let {name} focus her mouth on your cock while the sixty-nine position stays tangled."
],
"cont_69_to_sex": [
"You untangle from sixty-nine and guide your cock to her wet pussy while both of you are still slick from each other's mouths.",
"Her mouth leaves your cock as you turn her under you and line up with her cunt.",
"You pull away from the messy oral position and press your cock against the slit your tongue just worked.",
"You pull out of her mouth and shift from sixty-nine into sex, lining your cock up with her pussy.",
"The shared oral breaks apart long enough for your cock to find her soaked pussy."
],
"cont_69_to_sex_success": [
"You untangle from sixty-nine and guide your cock to her wet pussy while both of you are still slick from each other's mouths.",
"Her mouth leaves your cock as you turn her under you and line up with her cunt.",
"You pull away from the messy oral position and press your cock against the slit your tongue just worked.",
"You pull out of her mouth and shift from sixty-nine into sex, lining your cock up with her pussy.",
"The shared oral breaks apart long enough for your cock to find her soaked pussy."
],
"cont_anal_cowgirl_success": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"{name} lifts herself along your cock, then lowers her ass onto it another inch.",
"{name} continues riding your cock anally, lowering herself at the pace her ass can take."
],
"cont_anal_doggy_success": [
"You keep fucking {name}'s ass from behind, hands steady on her hips.",
"You keep fucking {name}'s ass from behind, hands steady on her hips.",
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch."
],
"cont_anal_hold_success": [
"You stop thrusting and let her feel your cock stretching her ass.",
"You hold still inside her ass and let {name} adjust around your cock.",
"You stay buried in her ass and hold still for a few seconds.",
"You keep your cock deep inside her while she breathes through the fullness.",
"You hold your hips against her, keeping every inch inside.",
"You keep her filled without moving until her body eases."
],
"cont_anal_missionary_success": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"You keep fucking {name}'s ass in missionary, close enough to watch the strain and pleasure on her face.",
"You keep fucking {name}'s ass in missionary, close enough to watch the strain and pleasure on her face."
],
"cont_anal_reverse_cowgirl_success": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"{name} keeps riding your cock anally in reverse cowgirl, her ass moving over you with careful control.",
"{name} continues riding your cock anally in reverse cowgirl, her ass moving over you with careful control."
],
"cont_anal_slow_success": [
"You hold your hips back and give her tight asshole time to adjust.",
"You slow your thrusts and let her ass take each inch.",
"You keep your cock in her ass and move with short, careful strokes.",
"You fuck her ass slowly, watching how she handles the stretch.",
"You keep the anal rhythm slow, letting her ass adjust around every inch of your cock.",
"You keep the anal rhythm steady, letting her ass adjust around every inch of your cock.",
"You keep the anal pace slow enough for her to breathe through it."
],
"cont_anal_wall_success": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"You keep fucking {name}'s ass against the wall, holding her steady through the intense angle.",
"You keep fucking {name}'s ass against the wall, holding her steady through the angle."
],
"cont_analingus_circle_success": [
"You keep your tongue on her asshole while your fingers join the anal play with careful pressure.",
"You bring your mouth to her ass and use your tongue with careful strokes.",
"You tease her asshole with your tongue, slow enough for her to take it.",
"You spread her ass enough to lick her asshole slowly.",
"You keep her ass spread and give the anal attention she allowed."
],
"cont_analingus_keep_success": [
"You keep licking her ass, tongue circling her asshole with slow, filthy patience.",
"You spread her ass wider and keep your mouth on her tight asshole.",
"Your tongue returns to her asshole again and again, keeping the analingus dirty and focused."
],
"cont_analingus_slow_success": [
"You bring your mouth to her ass and use your tongue with careful strokes.",
"You tease her asshole with your tongue, slow enough for her to take it.",
"You spread her ass enough to lick her asshole slowly.",
"You slow your tongue around her asshole, teasing the rim with light circles.",
"You ease the rimming into slower circles, keeping your tongue light on her asshole.",
"You keep her ass spread and give the anal attention she allowed."
],
"cont_analingus_to_anal": [
"You stop rimming her long enough to press your cock against her wet asshole.",
"Your tongue leaves her ass slick before your cock takes its place at the tight hole.",
"The analingus turns heavier as you replace your mouth with the head of your cock.",
"You move from rimming to anal sex, holding steady while her asshole adjusts to the new pressure.",
"Her ass is wet from your mouth when your cock starts pressing in."
],
"cont_analingus_to_anal_success": [
"You stop rimming her long enough to press your cock against her wet asshole.",
"Your tongue leaves her ass slick before your cock takes its place at the tight hole.",
"The analingus turns heavier as you replace your mouth with the head of your cock.",
"You move from rimming to anal sex, holding steady while her asshole adjusts to the new pressure.",
"Her ass is wet from your mouth when your cock starts pressing in."
],
"cont_analingus_to_cunni": [
"Your tongue leaves her asshole and returns to her wet pussy, making the pleasure easier for her to take.",
"You move your mouth back up from her ass to her slit, trading taboo pressure for direct clit work.",
"The analingus melts back into cunnilingus as your tongue finds her pussy again.",
"You leave her asshole wet from your tongue and move back to her cunt, dragging the same filthy attention over her slit.",
"Your mouth moves from her asshole to her clit, letting the dirty tension turn into wet pleasure."
],
"cont_analingus_to_cunni_success": [
"Your tongue leaves her asshole and returns to her wet pussy, making the pleasure easier for her to take.",
"You move your mouth back up from her ass to her slit, trading taboo pressure for direct clit work.",
"The analingus melts back into cunnilingus as your tongue finds her pussy again.",
"You leave her asshole wet and bring your mouth back to her pussy, licking her cunt before the anal tension fades.",
"Your mouth moves from her asshole to her clit, letting the dirty tension turn into wet pleasure."
],
"cont_bj_deeper_success": [
"You encourage {name} to take you deeper, letting your cock slide farther into her throat only as she allows it.",
"You guide the blowjob deeper until the head of your cock pushes farther into her mouth.",
"She takes more of your cock, slowly enough that the deeper push stays controlled."
],
"cont_bj_eye_contact_success": [
"You hold eye contact while {name} sucks your cock, turning the blowjob into a locked stare.",
"Her lips stay around your cock while you make her look up at you.",
"You keep her eyes on yours as her mouth works your shaft."
],
"cont_bj_guide_rhythm_success": [
"You guide your cock to her lips and let her mouth close around it.",
"You put a hand at the back of her head and guide her mouth up and down your cock.",
"She takes your cock into her mouth and works the head with her tongue.",
"Your hand guides the rhythm while her lips stay around your cock, making each stroke of her mouth more deliberate.",
"She keeps your dick in her mouth and learns what makes you react.",
"She sucks you slowly at first, tongue moving around the head."
],
"cont_bj_let_continue_success": [
"You guide your cock to her lips and let her mouth close around it.",
"She takes your cock into her mouth and works the head with her tongue.",
"Her mouth slides down your cock again, her tongue dragging under the head on the way back.",
"She keeps your dick in her mouth and learns what makes you react.",
"{name} keeps sucking your cock, mouth sliding over you while you let her hold the rhythm.",
"{name} continues sucking your cock, mouth sliding over you while you let her hold the rhythm.",
"She sucks you slowly at first, tongue moving around the head."
],
"cont_bj_praise_success": [
"You praise {name} while she sucks your cock, making every good motion obvious to her.",
"You tell her exactly when her mouth feels good, and she keeps working your cock through the praise.",
"Your praise follows each good stroke of her lips and tongue."
],
"cont_bj_slow_down_success": [
"You slow her blowjob down, holding back your orgasm by controlling the pace of her mouth.",
"You ease her mouth into a slower rhythm, letting each stroke drag longer over your cock.",
"Her lips stay around you while you make the blowjob slower and more controlled."
],
"cont_bj_to_sex": [
"Her lips leave your cock wet as you pull her up and line yourself with her pussy.",
"You pull your cock from her mouth and guide it toward her pussy, turning the blowjob into sex.",
"You lift her from your shaft and drag the wet head of your cock against her slit.",
"Her mouth leaves you slick, and you use that wetness as you push toward her cunt.",
"You break the blowjob and turn the heat of her mouth into the first push between her thighs."
],
"cont_bj_to_sex_success": [
"Her lips leave your cock wet as you pull her up and line yourself with her pussy.",
"You guide her off your cock and move between her legs before the saliva can cool.",
"You lift her from your shaft and drag the wet head of your cock against her slit.",
"Her mouth leaves you slick, and you use that wetness as you push toward her cunt.",
"You break the blowjob and turn the heat of her mouth into the first push between her thighs."
],
"cont_bj_touch_hair_success": [
"Your fingers slide into her hair while her mouth closes around your cock.",
"You touch her hair carefully while her tongue works the head of your cock.",
"Your fingers move through {name}'s hair while her mouth keeps working your cock.",
"Your fingers move through {name}'s hair while her mouth keeps working your cock.",
"Your fingers move through {name}'s hair while her mouth continues working your cock."
],
"cont_cunni_add_fingers_success": [
"You slide your fingers into her cunt while your tongue keeps working her clit.",
"Your tongue stays on her clit as two fingers ease inside her wet pussy.",
"You keep eating her out and add your fingers, filling her while your mouth stays busy."
],
"cont_cunni_keep_success": [
"You use your tongue on her pussy until her thighs start reacting.",
"You keep licking her pussy, tongue working her clit and slit without losing the rhythm.",
"You put your mouth between her thighs and lick up to her clit.",
"You drag your tongue over her wet slit, then settle on her clit.",
"You eat her pussy with slow strokes, keeping your mouth close to her heat.",
"You lick her folds open and keep returning to her clit."
],
"cont_cunni_tease_success": [
"You put your mouth between her thighs and lick up to her clit.",
"You drag your tongue over her wet slit, then settle on her clit.",
"You eat her pussy with slow strokes, keeping your mouth close to her heat.",
"Your tongue slows into teasing strokes, dragging over her slit and circling her clit without giving her enough.",
"Your tongue steadys into teasing strokes, dragging over her slit and circling her clit without giving her enough."
],
"cont_cunni_to_analingus": [
"Your mouth leaves her pussy and moves lower, dragging the wet attention toward her ass.",
"You leave her clit slick and sensitive before your tongue finds the tighter place below.",
"You drag your mouth down from her pussy to her ass and start licking her asshole.",
"You drag the wetness down from her slit and start rimming her with careful pressure.",
"Your mouth moves from her cunt to her asshole, turning the same heat into something more taboo."
],
"cont_cunni_to_analingus_success": [
"Your mouth leaves her pussy and moves lower, dragging the wet attention toward her ass.",
"You leave her clit slick and sensitive before your tongue finds the tighter place below.",
"You drag your mouth down from her pussy to her ass and start licking her asshole.",
"You drag the wetness down from her slit and start rimming her with careful pressure.",
"Your mouth moves from her cunt to her asshole, turning the same heat into something more taboo."
],
"cont_cunni_to_sex": [
"You lift your mouth from her pussy and drag your cock through the wetness your tongue left behind.",
"You rise from between her thighs and guide your cock to the slick cunt you just had under your mouth.",
"Your tongue leaves her clit, and your cock takes its place at her wet slit.",
"You lift your mouth from her wet pussy and line your cock up before the heat fades.",
"You shift up from her thighs and press the head of your cock against the cunt your mouth just opened."
],
"cont_cunni_to_sex_success": [
"You lift your mouth from her pussy and drag your cock through the wetness your tongue left behind.",
"You rise from between her thighs and guide your cock to the slick cunt you just had under your mouth.",
"Your tongue leaves her clit, and your cock takes its place at her wet slit.",
"You stop licking long enough to line your cock up with her soaked pussy.",
"You shift up from her thighs and press the head of your cock against the cunt your mouth just opened."
],
"cont_finger_keep_success": [
"Your fingers keep working inside {name}'s pussy, curling and pressing until her hips start following your hand.",
"Your fingers keep working inside {name}'s pussy, curling until her hips start following your hand.",
"You slide your fingers into her wet pussy and start with slow strokes.",
"You work one finger inside her, then bring your thumb to her clit.",
"You finger her carefully, feeling her cunt tighten around each stroke."
],
"cont_finger_tease_success": [
"You slide your fingers into her wet pussy and start with slow strokes.",
"You keep your hand between her thighs and push deeper by small degrees.",
"You use your fingers on her slit until she opens enough to take more.",
"You work one finger inside her, then bring your thumb to her clit.",
"You finger her carefully, feeling her cunt tighten around each stroke.",
"Your fingers slow, retreat, then curl back into her cunt, teasing her with every shallow return.",
"Your fingers draw back, pause, and push back into her cunt with a teasing curl."
],
"cont_finger_to_mouth": [
"Your fingers leave her wet enough for your mouth to take over, tongue settling against her clit.",
"You draw your fingers back from her cunt and lower your mouth to the slick slit you opened.",
"Your hand gives way to your tongue, turning the fingering into wet, direct oral.",
"You pull your fingers out slowly and replace them with your mouth between her thighs.",
"Her pussy stays open and slick from your fingers when your tongue finds her clit."
],
"cont_finger_to_mouth_success": [
"Your fingers leave her wet enough for your mouth to take over, tongue settling against her clit.",
"You draw your fingers back from her cunt and lower your mouth to the slick slit you opened.",
"Your hand gives way to your tongue, turning the fingering into wet, direct oral.",
"You pull your fingers out slowly and replace them with your mouth between her thighs.",
"Her pussy stays open and slick from your fingers when your tongue finds her clit."
],
"cont_footjob_keep_success": [
"{name} keeps your cock trapped between her feet, sliding both soles along your shaft.",
"Her soles squeeze your cock while she keeps stroking you with her feet.",
"She keeps the footjob going, dragging her soles over your hard cock in tight strokes."
],
"cont_hj_guide_rhythm_success": [
"She wraps her hand around your cock and starts stroking.",
"You close your hand over hers and guide two slow strokes along your cock.",
"Her hand keeps stroking your dick while you show her exactly which pace makes you react.",
"You guide the rhythm of her grip while her hand stays wrapped around your cock.",
"You let her stroke you until precum slicks her hand.",
"Her palm slides over your hard cock in steady strokes."
],
"cont_hj_keep_success": [
"She wraps her hand around your cock and starts stroking.",
"You guide her fingers around your shaft and let her work you.",
"Her hand keeps stroking your cock, grip firm enough to drag over the swollen head each time.",
"Her hand continues stroking your cock, grip firm enough to drag over the swollen head each time.",
"Her palm slides over your hard cock in steady strokes."
],
"cont_hj_kiss_success": [
"You kiss {name} while her hand strokes your cock, mixing her mouth with the rhythm of her grip.",
"Her hand keeps stroking your cock while you lean in and kiss her.",
"She keeps one hand on your dick while your mouth finds hers.",
"You kiss her instead of guiding her hand, letting her keep stroking your shaft.",
"You kiss her through the handjob, her strokes getting slick with precum.",
"Her palm keeps sliding over your hard cock while you kiss her."
],
"cont_hj_tease_success": [
"She wraps her hand around your cock and starts stroking.",
"You tease {name} while she strokes your cock, making her watch every reaction her hand earns.",
"You guide her fingers around your shaft and let her work you."
],
"cont_hj_to_bj": [
"Her hand keeps stroking until her mouth lowers and takes over around the head of your cock.",
"You guide her hand and mouth together until her lips replace her fingers around your cock.",
"Her fingers stay at the base while her mouth closes around your cock.",
"The handjob turns into a blowjob, her lips taking the rhythm her hand started.",
"She keeps you steady with her hand while her mouth moves onto your cock."
],
"cont_hj_to_bj_success": [
"Her hand keeps stroking until her mouth lowers and takes over around the head of your cock.",
"You guide the handjob toward her lips, and she replaces her fingers with wet heat.",
"Her fingers stay at the base while her mouth closes around your cock.",
"The handjob turns into a blowjob, her lips taking the rhythm her hand started.",
"She keeps you steady with her hand while her mouth moves onto your cock."
],
"cont_rubbing_keep_success": [
"You keep rubbing her pussy through the fabric, dragging your fingers over the damp cloth with steady pressure.",
"You press your fingers against her pussy through the fabric and rub in short strokes.",
"You keep your hand between her thighs and rub her clothed pussy until the fabric pulls against her slit.",
"You keep rubbing her pussy through the fabric, dragging the cloth against her slit without going inside.",
"You keep your palm against her pussy and build the friction slowly.",
"You slip your hand low enough to make the contact unmistakable."
],
"cont_rubbing_to_fingering_success": [
"The rubbing through fabric becomes direct when your fingers slip past the last layer and find her wet pussy.",
"You move from rubbing her through the cloth to touching her cunt directly.",
"Your fingers leave the fabric behind and slide into the wet slit underneath.",
"The teasing over her clothes turns into fingering as your hand finally gets under the barrier.",
"You stop grinding fabric against her pussy and push your fingers into the slick heat below."
],
"cont_sex_cowgirl_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You slide inside her cunt and let her body adjust around you.",
"{name} lowers herself onto your cock again, then rises until only the head remains inside.",
"{name} continues riding you in cowgirl, her pussy sliding down your cock at her chosen pace."
],
"cont_sex_doggy_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You keep fucking {name} from behind, hands on her hips as your cock drives into her pussy.",
"You slide inside her cunt and let her body adjust around you."
],
"cont_sex_missionary_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You slide inside her cunt and let her body adjust around you.",
"You keep fucking {name} in missionary, staying close enough to watch every reaction cross her face."
],
"cont_sex_reverse_cowgirl_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You slide inside her cunt and let her body adjust around you.",
"{name} keeps riding you in reverse cowgirl, facing away while her ass moves over your hips.",
"{name} continues riding you in reverse cowgirl, facing away while her ass moves over your hips."
],
"cont_sex_to_69": [
"You break the thrusting and turn the heat into mutual oral, pulling her mouth toward your cock while yours finds her pussy.",
"The sex pauses with her pussy still wet from your cock, then changes into mouths and tongues.",
"You shift out of penetration and pull her into sixty-nine before the heat can fade.",
"You trade thrusting for mutual oral, keeping her wet cunt close to your mouth while she lowers to your cock.",
"You pull your cock out of her pussy and turn the position into sixty-nine, bringing your mouth to her cunt as hers finds your cock."
],
"cont_sex_to_69_success": [
"You break the thrusting and turn the heat into mutual oral, pulling her mouth toward your cock while yours finds her pussy.",
"The sex pauses with her pussy still wet from your cock, then changes into mouths and tongues.",
"You shift out of penetration and pull her into sixty-nine before the heat can fade.",
"You trade thrusting for mutual oral, keeping her wet cunt close to your mouth while she lowers to your cock.",
"You pull your cock out of her pussy and turn the position into sixty-nine, bringing your mouth to her cunt as hers finds your cock."
],
"cont_sex_to_anal": [
"You pull from her wet pussy and press your cock against her tight asshole, letting the switch happen carefully.",
"The vaginal rhythm breaks as you guide your slick cock from her cunt to her ass.",
"You pull out of her pussy and press your cock against her asshole, slowing down as the penetration shifts to anal.",
"Her cunt leaves your cock wet before you guide it toward her ass.",
"You trade the wet slide of her pussy for the tighter pressure of her ass, moving only when she can take it."
],
"cont_sex_to_anal_success": [
"You pull from her wet pussy and press your cock against her tight asshole, letting the switch happen carefully.",
"The vaginal rhythm breaks as you guide your slick cock from her cunt to her ass.",
"You pull out of her pussy and press your cock against her asshole, slowing down as the penetration shifts to anal.",
"Her cunt leaves your cock wet before you guide it toward her ass.",
"You trade the wet slide of her pussy for the tighter pressure of her ass, moving only when she can take it."
],
"cont_sex_wall_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You slide inside her cunt and let her body adjust around you.",
"You keep fucking {name} against the wall, holding her steady while the position stays urgent."
],
"cont_titfuck_keep_success": [
"{name} keeps your cock buried between her tits, squeezing them tight around each thrust.",
"Her breasts stay pressed around your shaft while you keep fucking between them.",
"You keep thrusting through her tits, the head of your cock sliding out with each push."
],
"cont_titfuck_let_work_success": [
"She squeezes her tits around your cock and lets you thrust between them.",
"You let {name} take over, and she moves her tits around your cock at her own pace.",
"Your shaft slides between her breasts while she holds them tight."
],
"cont_titfuck_lick_tip_success": [
"{name} keeps your cock between her tits and leans down to lick the head each time it pushes out.",
"She keeps your cock squeezed between her tits and flicks her tongue over the head when it reaches her mouth.",
"She squeezes her tits around your shaft and licks the head on every high stroke."
],
"continue_anal": [
"Your cock stretches her asshole open, inch by inch.",
"Your hips drive into her from behind, cock buried in her ass.",
"You line your cock with her ass and push in until she has to brace herself.",
"You fuck her ass with short thrusts while she holds herself still.",
"You keep fucking her tight asshole until her body shakes under you."
],
"continue_analingus": [
"You spread her cheeks and drag your tongue over her asshole.",
"You keep rimming her, tongue working her tight hole until the dirty pleasure starts making her wetter.",
"Her breath catches when you circle her asshole again, but she does not move away.",
"You keep her ass open and lick her slowly.",
"{name} stays in position, tense at first, then softer as your tongue keeps the analingus slow and deliberate."
],
"continue_analingus_fingers": [
"You keep your tongue on her asshole while your fingers join the anal play with careful pressure.",
"You bring your mouth to her ass and use your tongue with careful strokes.",
"You tease her asshole with your tongue, slow enough for her to take it.",
"You spread her ass enough to lick her asshole slowly.",
"You keep her ass spread and give the anal attention she allowed."
],
"continue_blowjob": [
"You keep your cock in her mouth while she works it with lips and tongue.",
"You guide your cock between her lips and she takes it with her tongue against the underside.",
"{name} keeps her mouth around your cock, using her tongue whenever she pulls back to the head.",
"Her tongue circles the head while her fingers keep pumping, turning the blowjob sharper and more focused.",
"She sucks harder when your cock twitches, learning how to keep you trapped in the sensation."
],
"continue_cunnilingus": [
"You bury your mouth against her cunt and lick until her hips start to jerk.",
"You put your mouth between her thighs and lick up to her clit.",
"You suck lightly on her clit, then flatten your tongue over her pussy again.",
"{name}'s thighs frame your face while your tongue keeps working her cunt.",
"You lick her pussy from the bottom of her folds up to her clit.",
"{name} stops trying to sound composed. Her hips lift toward your mouth as the licking turns wet, steady, and impossible to ignore.",
"The licking continues, wetter and more focused, each pass of your tongue making {name} tense and soften in waves.",
"Your mouth stays locked to her cunt, patient enough to build the feeling and hungry enough not to let it fade."
],
"continue_cunnilingus_fingers": [
"Your fingers pump inside her soaked pussy as your tongue works her swollen clit.",
"You slide two fingers deep into her cunt while licking her clit.",
"You curl your fingers against the spot inside her while your mouth works her clit.",
"Thick juices coat your fingers as you lick and thrust at the same time.",
"Your fingers slide into her pussy and curl inside her.",
"You finger-fuck her steadily while sucking on her clit."
],
"continue_cunnilingus_tease": [
"You bury your mouth against her cunt and lick until her hips start to jerk.",
"Your mouth goes between her thighs, tongue dragging over her wet slit.",
"Your mouth stays close to her pussy, giving light flicks and kisses that never quite become enough.",
"Your tongue moves in slow, frustrating patterns around her cunt.",
"Soft teasing licks keep her pussy throbbing and needy.",
"You lick around her soaked entrance, keeping her desperate and dripping."
],
"continue_deepthroat": [
"You ask for more depth, and {name} lowers again until your cock slides farther into her throat.",
"She takes a breath through her nose, opens her mouth wider, and lets more of your shaft disappear past her lips.",
"The blowjob gets deeper. She sinks down, gags once, and comes back with her lips stretched around more of you.",
"You guide her down slowly, feeding her cock inch by inch until her throat tightens around you.",
"{name} tries to take you deeper, saliva running down your shaft as she holds herself on your cock for a second longer."
],
"continue_fingering": [
"Your fingers keep working inside {name}'s pussy, curling and pressing until her hips start following your hand.",
"Your hand works between her thighs, fingers moving in and out of her pussy.",
"You keep your fingers inside her soaked cunt, curling deeper whenever her hips answer.",
"Your hand works between her legs, wet and deliberate, until her pussy tightens around your fingers.",
"You spread her wet folds and push two fingers into her cunt.",
"{name}'s cunt slicks your fingers as you keep moving, each curl making her body answer harder.",
"Your fingers slide into her pussy and curl inside her.",
"You finger her slowly, letting your thumb catch her clit between strokes."
],
"continue_fingering_tease": [
"You slide your fingers into her wet pussy and start with slow strokes.",
"Your fingers stay buried in her slit, moving playfully and cruelly enough to make her hips beg for the next stroke.",
"You spread her wet folds and push two fingers into her cunt.",
"Your fingers slow, curl, and retreat in teasing patterns that keep her cunt tense around every motion.",
"You drag your fingertips against her inner walls, then pause just long enough to make her clench around nothing."
],
"continue_footjob": [
"{name} keeps your cock between her feet, sliding both soles along your shaft until the head slips out and gets pulled back in.",
"The footjob continues with her legs raised and your cock trapped between her feet, slicking the skin with precum.",
"Her toes curl against you as she strokes your cock with her feet, squeezing just enough to make every pass drag.",
"She works you with both soles, one foot bracing the base while the other rubs over the head of your cock.",
"She keeps using her feet on you, rubbing from base to head and tightening her toes whenever your cock twitches."
],
"continue_handjob": [
"{name}'s fingers tighten around you as the handjob grows faster and dirtier.",
"Her thumb circles the head while her fingers keep pumping, turning the handjob sharper and more focused.",
"Her hand keeps stroking your cock, grip firm enough to make every pull drag over the swollen head.",
"Her hand works your cock while her thumb catches the head.",
"She pumps your shaft with her fingers tight around it."
],
"continue_rubbing": [
"You press your fingers against her pussy through the fabric and rub in short strokes.",
"Your fingers drag over the cloth again and again, grinding the fabric against her clit until her hips begin to answer.",
"You rub her through her clothes, making the fabric slide against her pussy.",
"Your hand rubs her pussy through the fabric until the cloth sticks to her.",
"You work her through her panties without pushing inside yet, using the friction until the cloth feels warm and damp under your hand."
],
"continue_sex": [
"You push your cock into her wet pussy and start thrusting slowly.",
"Your cock sinks into her pussy and you start fucking her.",
"Your cock pushes into her pussy and the act becomes sex.",
"{name} stays with you as the sex keeps building, her cunt slicking around your cock before she can make herself sound composed.",
"You push into her until your hips meet hers.",
"She spreads her legs and takes your cock."
],
"continue_sixty_nine": [
"You both use your mouths, her thighs around your head and your cock between her lips.",
"You get into Sixty-nine, your mouth on her pussy while hers works your cock.",
"She lowers herself over your face and takes your cock into her mouth.",
"Your tongue works her cunt while she sucks you at the same time.",
"You keep licking her pussy while she sucks you, both of you getting messier with every broken breath."
],
"continue_titfuck": [
"{name} keeps your cock buried between her tits, squeezing them together as she strokes you with her chest.",
"Her breasts slide up and down your shaft, soft skin closing around your cock until the head pushes out between them.",
"The titfuck keeps going, your cock trapped in the warm press of her breasts while she moves against you.",
"She cups her tits tighter and works them over you, letting precum smear across her chest.",
"She keeps her chest around you and strokes steadily, dragging her tits along your shaft until you twitch."
],
"continue_titfuck_let_work": [
"Your cock slides between her breasts, the head pushing up toward her mouth.",
"She does the work herself, rolling her tits around your shaft and adjusting whenever your cock slips free.",
"You let {name} take over. She holds her tits around your cock and moves them herself, watching how your shaft reacts.",
"You stop guiding her, and she keeps going on her own, sliding her breasts over your cock until the head glistens.",
"{name} squeezes her tits together and traps your shaft between them."
],
"continue_titfuck_lick_tip": [
"The titfuck turns messier as she licks the tip between passes, her tongue and tits sharing the same slick path.",
"She holds her tits tight around you and drags her tongue over the exposed head whenever it reaches her mouth.",
"{name} keeps your cock between her tits and leans down to lick the head each time it pushes out.",
"Her breasts squeeze your shaft while her tongue flicks over the tip, catching precum before she strokes you again.",
"She works you with her chest, then dips her mouth low enough to taste the head of your cock."
],
"cowgirl": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You fuck her with steady thrusts, keeping your hips close.",
"You slide inside her cunt and let her body adjust around you.",
"{name} climbs over you and sinks onto your cock in cowgirl, controlling the first motion with her hips."
],
"cowgirl_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You fuck her with steady thrusts, keeping your hips close.",
"You slide inside her cunt and let her body adjust around you.",
"{name} climbs over you and sinks onto your cock in cowgirl, controlling the first motion with her hips."
],
"cunnilingus_to_sex": [
"You lift your mouth from her pussy and drag your cock through the wetness your tongue left behind.",
"You rise from between her thighs and guide your cock to the slick cunt you just had under your mouth.",
"Your tongue leaves her clit, and your cock takes its place at her wet slit.",
"You stop licking long enough to line your cock up with her soaked pussy.",
"You shift up from her thighs and press the head of your cock against the cunt your mouth just opened."
],
"default_failure": [
"You try to continue, but {name} stops it before it goes farther.",
"You start to push the contact farther, but {name} stops the move before it settles.",
"You make the attempt, and {name} refuses it clearly.",
"{name} cuts the action short before your hands can push the contact any further.",
"You try to continue, but she blocks the escalation and makes the limit clear.",
"The attempt reaches the edge of what she will allow, and she breaks it before it continues.",
"{name} interrupts the move before it can become more sexual."
],
"default_success": [
"You continue carefully, watching how she reacts.",
"You keep the move clear and physical, close enough that {name} can feel exactly what you are asking from her body.",
"You close the distance with a touch clear enough for her body to answer.",
"You move closer, letting your body make the next offer before your hands do.",
"You close the distance and put your hands on her."
],
"demand_anal_sex_success": [
"You demand anal from {name}, and she gives you a careful yes.",
"You order her to give you her ass, and she accepts the command with a tense look.",
"You command anal from her, and she lets the order stand instead of refusing.",
"{name} hears the demand for anal and gives you a careful, dangerous yes.",
"The anal demand lands. She does not look relaxed, but she agrees to obey."
],
"demand_blowjob_success": [
"You demand a blowjob, and {name} accepts the order after a tense pause.",
"You order her to use her mouth, and she decides to obey.",
"You command her to suck you, and she gives you a look that says she heard you.",
"{name} accepts the blowjob demand, but her eyes warn you not to push your luck.",
"The order lands. She agrees to use her mouth, but nothing starts until she chooses to move."
],
"demand_cunnilingus_success": [
"You demand to go down on her, and {name} accepts the command after a sharp breath.",
"You order her to open for your mouth, and she lets the demand stand.",
"You command her to let you lick her, and she accepts with a sharp breath.",
"{name} accepts the cunnilingus demand, but her look tells you to be careful.",
"The order lands. She agrees to let your mouth between her legs."
],
"demand_footjob_success": [
"You demand a footjob, and {name} accepts the order with a controlled look.",
"You order her to use her feet, and she decides to obey.",
"You command a footjob from her, and she lets the demand stand.",
"{name} accepts the footjob demand, but does not make it soft for you.",
"The order lands. She agrees to give you that much."
],
"demand_handjob_success": [
"You demand a handjob, and {name} accepts the order after a tense pause.",
"You order her to use her hand, and she decides to obey.",
"You command her to stroke you, and she lets the demand stand.",
"{name} accepts the handjob demand with a look that tells you not to ask for more yet.",
"The order lands. She agrees to touch you, but only on her terms."
],
"demand_sex_success": [
"You demand sex from {name}, and after a tense pause she accepts the order.",
"You order her to fuck you, and she accepts the command with a tense breath.",
"You command sex from her, and she lets the demand stand instead of refusing.",
"{name} accepts the sex demand, but her look tells you to keep control.",
"The order lands. She agrees to sex, but nothing physical starts before she is ready."
],
"demand_sixty_nine_success": [
"You demand sixty-nine, and {name} accepts the order after a measured pause.",
"You order her into sixty-nine, and she decides to obey.",
"You demand sixty-nine, and she accepts the order after making sure your mouth has work too.",
"{name} accepts the sixty-nine demand, but makes it clear your mouth has work too.",
"The order lands. She agrees to the position, but not to being the only one used."
],
"demand_titfuck_success": [
"You demand a titfuck, and {name} accepts the command with a hard look.",
"You order her to use her breasts, and she decides to obey.",
"You command her chest like it is yours, and she lets the demand stand for now.",
"{name} accepts the titfuck demand, but her eyes warn you not to get smug.",
"The order lands. She agrees to use her tits, but only because she chooses to obey."
],
"doggy": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You move behind {name} and push your cock into her pussy from behind.",
"You slide inside her cunt and let her body adjust around you."
],
"doggy_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You move behind {name} and push your cock into her pussy from behind.",
"You slide inside her cunt and let her body adjust around you."
],
"facesitting": [
"{name} lowers her pussy over your mouth, thighs tightening around your head as your tongue finds her clit.",
"You bury your mouth against her cunt and lick until her hips start to jerk.",
"Her pussy covers your mouth and she has to steady herself as your tongue starts licking her from below.",
"Her body hovers over your mouth for a second before she gives in and grinds her cunt against your tongue.",
"You lick her pussy from the bottom of her folds up to her clit."
],
"finger_ass_success": [
"You spread her ass with one hand and press a slick finger against her tight asshole.",
"You ease one finger into her ass slowly, pausing whenever her body tightens.",
"Your finger circles her asshole before slipping in with careful pressure.",
"You work one finger into her tight little asshole, slow enough for her to adjust.",
"You keep her ass spread while your finger tests her inch by inch."
],
"cont_anal_finger_keep_success": [
"You keep your finger inside her ass and work it in slow, shallow strokes.",
"You move your finger a little deeper, then hold still until she relaxes around it.",
"You curl your finger carefully inside her while your other hand steadies her hips.",
"You ease your finger in and out of her ass without changing the pace.",
"You keep fingering her ass and let her hips set the depth."
],
"refusal_cont_anal_finger_keep": [
"You try to keep moving your finger, but she tenses and makes you slow down.",
"Your next stroke goes too deep, and she catches your wrist.",
"You continue fingering her ass until she tells you to hold still.",
"Her body tightens around your finger, so you pull back when she asks.",
"You try to keep the rhythm, but she is no longer comfortable with it."
],
"cont_anal_finger_to_fingering_success": [
"You ease your finger out of her ass, then use your other hand to slide two fingers into her pussy.",
"You withdraw slowly and bring your other hand between her thighs to start fingering her.",
"Your finger leaves her ass. You switch hands before pushing two fingers into her wet pussy.",
"You stop the anal touch and use your other hand on her slit, working your fingers inside her.",
"You pull your finger free, change hands, and start fingering her pussy instead."
],
"refusal_cont_anal_finger_to_fingering": [
"You withdraw from her ass and move your other hand toward her pussy, but she closes her thighs.",
"You try to change hands and finger her pussy, but she catches your wrist first.",
"Your other hand reaches between her thighs, and she pushes it away.",
"You start to switch from her ass to her pussy, but she tells you to stay where you are.",
"You move toward vaginal fingering, but she blocks the change."
],
"cont_anal_finger_to_analingus_success": [
"You pull your finger out and put your mouth against her ass, licking over her tight hole.",
"Your finger leaves her ass, and your tongue takes over with a slow first lick.",
"You lower your mouth between her cheeks and circle her asshole with your tongue.",
"You withdraw your finger, spread her ass, and start licking her instead.",
"You replace your finger with your tongue and begin rimming her slowly."
],
"refusal_cont_anal_finger_to_analingus": [
"You pull your finger back and lower your mouth, but she moves her ass out of reach.",
"Your face moves closer to her ass, and she stops you before your tongue touches her.",
"You try to replace your finger with your mouth, but she tells you not to switch.",
"You spread her cheeks for your tongue, and she immediately closes the space again.",
"You move in to lick her ass, but she pushes your head back."
],
"finger_pussy": [
"You slide your fingers into her wet pussy and start with slow strokes.",
"You work one finger inside her, then bring your thumb to her clit.",
"You finger her carefully, feeling her cunt tighten around each stroke.",
"Your fingers slide into {name}'s wet pussy and curl inside her, turning the petting into direct fingering.",
"Your slow fingers slide into {name}'s wet pussy and curl inside her, turning the petting into direct fingering."
],
"finger_pussy_success": [
"You slide your fingers into her wet pussy and start with slow strokes.",
"You work one finger inside her, then bring your thumb to her clit.",
"You finger her carefully, feeling her cunt tighten around each stroke.",
"Your fingers slide into {name}'s wet pussy and curl with each stroke.",
"Your slow fingers slide into {name}'s wet pussy and curl inside her, turning the petting into direct fingering."
],
"fingering_pleasure": [
"You slide your fingers into her wet pussy and start with slow strokes.",
"You work one finger inside her, then bring your thumb to her clit.",
"You finger her carefully, feeling her cunt tighten around each stroke.",
"Your fingers work inside her pussy, curling and pressing against her inner walls.",
"Your fingers work steadily inside her pussy, curling and pressing against her inner walls."
],
"grind_together": [
"You press your hips against her and grind slowly, making the friction come from your bodies instead of your hand.",
"You pull her close and grind against her through the clothes, keeping the pressure low and obvious.",
"Your hips move against hers, using the fabric between you to make every slow grind felt.",
"You keep your hips pressed to hers and build the friction slowly through your clothes.",
"You pull her close enough that the grind is unmistakable.",
"You press your hips into her and grind against her body, making the friction obvious through the closeness.",
"You press your hips into her and grind against her body, making the friction impossible to ignore through the closeness."
],
"grind_together_success": [
"You press your hips against her and grind slowly, making the friction come from your bodies instead of your hand.",
"You pull her close and grind against her through the clothes, keeping the pressure low and obvious.",
"Your hips move against hers, using the fabric between you to make every slow grind felt.",
"You keep your hips pressed to hers and build the friction slowly through your clothes.",
"You pull her close enough that the grind is unmistakable.",
"You press your hips into her and grind against her body, making the friction obvious through the closeness.",
"You press your hips into her and grind against her body, making the friction impossible to ignore through the closeness."
],
"handjob_pleasure": [
"She wraps her hand around your cock and starts stroking.",
"She keeps one hand on your dick and watches how you respond.",
"You guide her fingers around your shaft and let her work you.",
"You let her stroke you until precum slicks her hand.",
"{name}'s hand strokes your cock with a firm, testing rhythm.",
"{name}'s hand strokes your cock with a firm, testing rhythm.",
"Her palm slides over your hard cock in steady strokes."
],
"lick_pussy_success": [
"You lower your mouth to {name}'s pussy and start licking her slit and clit with deliberate strokes.",
"You lower your mouth to {name}'s pussy and start licking her slit and clit.",
"You put your mouth between her thighs and lick up to her clit.",
"You drag your tongue over her wet slit, then settle on her clit."
],
"massage_ass": [
"Your hands move over her ass, squeezing and spreading her cheeks while the massage turns lower and dirtier.",
"Your steady hands move over her ass, squeezing and spreading her cheeks while the massage turns lower and dirtier.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"Your palms move over her ass, squeezing and spreading her cheeks while the massage turns lower and dirtier."
],
"massage_ass_success": [
"Your hands move over her ass, squeezing and spreading her cheeks while the massage turns lower and dirtier.",
"Your steady hands move over her ass, squeezing and spreading her cheeks while the massage turns lower and dirtier.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"Your palms move over her ass, squeezing and spreading her cheeks while the massage turns lower and dirtier."
],
"massage_back": [
"You keep the massage steady, focusing on the place you chose.",
"You work down her back with steady hands, pressing into each tight spot until her breathing starts to slow.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"You press in carefully and let your hands do the work."
],
"massage_breasts": [
"Your hands massage her tits, thumbs circling her nipples until they start hardening under the pressure.",
"Your steady massage reaches her breasts, hands working over her tits while your thumbs find the shape of her nipples.",
"Your massage reaches her breasts, palms working over her tits while your thumbs find the shape of her nipples.",
"You massage her breasts with both hands, keeping the pressure slow enough for her body to answer.",
"Your hands move over her breasts, kneading slowly while your thumbs circle her nipples."
],
"massage_breasts_success": [
"Your hands keep massaging her tits, thumbs working over her nipples without bringing your mouth in.",
"Your steady massage reaches her breasts, hands working over her tits while your thumbs find the shape of her nipples.",
"Your massage reaches her breasts, palms working over her tits while your thumbs find the shape of her nipples.",
"You massage her breasts with both hands, keeping the pressure slow enough for her body to answer.",
"Your hands move over her breasts, kneading slowly while your thumbs circle her nipples."
],
"massage_escalate": [
"You massage her ass with both hands, spreading and squeezing it.",
"The massage stops being only relief when your hands linger lower and {name} lets the bolder touch stay.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"Your palms move over her ass while she shifts under the touch."
],
"massage_inner_thighs": [
"Your hands move along {name}'s inner thighs, rubbing slowly while staying close enough to her pussy to charge every stroke.",
"Your steady hands move along {name}'s inner thighs, rubbing slowly while staying close enough to her pussy to charge every stroke.",
"You work your hands into her muscles with slow, firm strokes.",
"Your palms move along {name}'s inner thighs, rubbing slowly while staying close enough to her pussy to charge every stroke."
],
"massage_inner_thighs_success": [
"Your hands move along {name}'s inner thighs, rubbing slowly while staying close enough to her pussy to charge every stroke.",
"Your steady hands move along {name}'s inner thighs, rubbing slowly while staying close enough to her pussy to charge every stroke.",
"You work your hands into her muscles with slow, firm strokes.",
"Your palms move along {name}'s inner thighs, rubbing slowly while staying close enough to her pussy to charge every stroke.",
"Your hands move along {name}'s inner thighs, rubbing close enough to her pussy to charge every stroke."
],
"massage_legs": [
"You keep the massage steady, focusing on the place you chose.",
"Your hands knead her ass, fingers digging into the soft flesh.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"You press in carefully and let your hands do the work."
],
"massage_lower_back": [
"You keep the massage steady, focusing on the place you chose.",
"Your hands knead her ass, fingers digging into the soft flesh.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"You press in carefully and let your hands do the work."
],
"massage_lower_back_success": [
"Your hands move to her lower back, slow and heavy, close enough to make the massage feel risky.",
"Your steady hands move to her lower back, slow and heavy, close enough to make the massage feel risky.",
"Your hands move to her lower back, careful and heavy, close enough to make the massage feel risky.",
"You work your hands into her muscles with slow, firm strokes.",
"Your palms move to her lower back, slow and heavy, close enough to make the massage feel risky."
],
"massage_neck": [
"You keep the massage steady, focusing on the place you chose.",
"Your hands knead her ass, fingers digging into the soft flesh.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"You press in carefully and let your hands do the work."
],
"massage_pussy_bare": [
"Your fingers leave the massage path and settle on her bare slit, rubbing slowly until her thighs part.",
"You rub her bare pussy with slow strokes, keeping the massage rhythm even as it turns sexual.",
"Your fingertips slide over her folds and circle her clit without rushing straight inside.",
"You work the massage down to her pussy, using steady pressure on her slit and clit.",
"Your hand stays between her thighs, rubbing her bare pussy until the massage becomes direct sexual touching."
],
"massage_pussy_bare_success": [
"Her bare slit is under your fingers now, and the massage becomes slow rubbing over her clit and folds.",
"You press two fingers to her bare clit and rub in slow circles.",
"Your fingertips slide over her folds and circle her clit without rushing straight inside.",
"You work the massage down to her pussy, using steady pressure on her slit and clit.",
"Your hand stays between her thighs, rubbing her bare pussy until the massage turns openly sexual."
],
"massage_pussy_fabric": [
"You drag your hand over her clothed slit until the fabric starts to dampen.",
"You press your fingers against her pussy through the fabric and rub in short strokes.",
"Your hand rubs her pussy through the fabric, making the cloth drag over her slit with every slow stroke.",
"Your steady hand rubs her pussy through the fabric, making the cloth drag over her slit with every slow stroke.",
"Your hand rubs her pussy through the fabric, making the cloth drag over her slit with every careful stroke."
],
"massage_pussy_fabric_success": [
"You drag your hand over her clothed slit until the fabric starts to dampen.",
"You press your fingers against her pussy through the fabric and rub in short strokes.",
"Your hand rubs her pussy through the fabric, making the cloth drag over her slit with every slow stroke.",
"Your steady hand rubs her pussy through the fabric, making the cloth drag over her slit with every slow stroke.",
"Your hand rubs her pussy through the fabric, making the cloth drag over her slit with every careful stroke."
],
"massage_shoulders": [
"You keep the massage steady, focusing on the place you chose.",
"Your hands knead her ass, fingers digging into the soft flesh.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"You press in carefully and let your hands do the work."
],
"massage_start": [
"You start the massage with patient hands, keeping the contact useful before it becomes anything more.",
"Your hands knead her ass, fingers digging into the soft flesh.",
"You work your hands into her muscles with slow, firm strokes.",
"You use both hands and follow the tight spots under your thumbs.",
"Your palms move over her ass while she shifts under the touch."
],
"massage_strip_break": [
"The massage pauses while the next layer comes off, then your hands return to warmer skin.",
"You break the massage long enough to remove a layer and make the next touch more exposed.",
"The clothing shift interrupts the rhythm for a moment before your hands settle again.",
"One layer comes away during the massage, changing the pressure from clothed to more direct."
],
"massage_strip_warning": [
"The massage is starting to turn into undressing, and the next touch will make that obvious.",
"Your hands find the edge of the next layer, and the massage pauses around that choice.",
"The layer still in the way makes the massage feel less innocent than when it started."
],
"massage_tongue_ass": [
"You bring your mouth to her ass and use your tongue with careful strokes.",
"You shift behind her and put your tongue to her ass, turning the massage into slow, filthy rimming.",
"You shift behind her and put your tongue to her ass, turning the massage into careful, filthy rimming.",
"You spread her ass enough to lick her asshole slowly."
],
"massage_tongue_ass_success": [
"You bring your mouth to her ass and use your tongue with careful strokes.",
"You shift behind her and put your tongue to her ass, turning the massage into slow, filthy rimming.",
"You shift behind her and put your tongue to her ass, turning the massage into careful, filthy rimming.",
"You spread her ass enough to lick her asshole slowly.",
"You work your tongue over her tight asshole until she starts to relax."
],
"massage_tongue_pussy": [
"You lower your mouth to her pussy, using your tongue on her slit and clit until the massage becomes cunnilingus.",
"You put your mouth between her thighs and lick up to her clit.",
"You drag your tongue over her wet slit, then settle on her clit.",
"You eat her pussy with slow strokes, keeping your mouth close to her heat.",
"You lick her folds open and keep returning to her clit."
],
"massage_tongue_pussy_success": [
"You lower your mouth to her pussy, using your tongue on her slit and clit until the massage becomes cunnilingus.",
"You put your mouth between her thighs and lick up to her clit.",
"You drag your tongue over her wet slit, then settle on her clit.",
"You eat her pussy with slow strokes, keeping your mouth close to her heat.",
"You lick her folds open and keep returning to her clit."
],
"massage_vagina": [
"Your fingers move between her thighs and start rubbing her pussy as the massage turns sexual.",
"You let the massage move onto her pussy, using slow strokes over her slit.",
"Your hand works between her thighs, rubbing her clit in slow strokes as the massage turns sexual.",
"Your fingers find her clit during the massage and rub it slowly while your other hand keeps her thighs open.",
"You keep massaging her inner thighs until your fingers are working her pussy directly."
],
"massage_vagina_success": [
"Your fingers move over her clit as the massage turns into pussy play.",
"You let the massage move onto her pussy, using slow strokes over her slit.",
"Your fingers work her pussy in slow strokes, staying on her clit until her hips answer.",
"Your fingers settle on her clit and rub with a slower rhythm, making the massage focus on her pussy.",
"You keep massaging her inner thighs until your fingers are working her pussy directly."
],
"missionary": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You settle between her legs, line up, and slide into her pussy face to face.",
"You settle between {name}'s legs and push your cock into her pussy in missionary.",
"You slide inside her cunt and let her body adjust around you."
],
"missionary_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You stay over her and fuck her in missionary, close enough to watch her breath change.",
"You settle between {name}'s legs and fuck her in missionary.",
"You slide inside her cunt and let her body adjust around you."
],
"mutual_oral_pleasure": [
"Your tongue stays on her clit as her lips move around your dick.",
"You keep your mouth on her pussy while she works your cock.",
"You keep the mutual oral rhythm, mouth on her pussy while hers works your cock.",
"You stay in sixty-nine, eating her pussy while she keeps your cock wet.",
"Her mouth and your tongue work at the same time, sloppy and close.",
"You lick her through another moan while she keeps sucking you."
],
"oral_give": [
"You keep your cock in her mouth while she works it with lips and tongue.",
"Her mouth closes around your cock and starts sucking again.",
"Her lips close around the head of your cock first, tongue testing you before she takes more.",
"Her lips slide down your cock, wet and tight around you.",
"She sucks the head of your cock before taking more of the shaft."
],
"oral_giving_pleasure": [
"You guide your cock to her lips and let her mouth close around it.",
"{name}'s mouth works your cock, tongue and lips moving over the head and shaft.",
"{name}'s mouth works your cock, her tongue moving over the head and shaft.",
"She takes your cock into her mouth and works the head with her tongue.",
"She sucks you slowly at first, tongue moving around the head."
],
"oral_receive": [
"Your tongue presses against her clit, then drags lower through her slit, making her hips lift toward your mouth.",
"You bury your mouth against her cunt and lick until her hips start to jerk.",
"You put your mouth between her thighs and lick up to her clit.",
"Your mouth goes between her thighs, tongue dragging over her wet slit.",
"The oral starts slow, your lips and tongue teasing her cunt open before focusing where she needs it most.",
"You lick her pussy from the bottom of her folds up to her clit.",
"You stay between her legs and use your mouth on her pussy until her breathing turns sharp and needy.",
"Your tongue works over her slit, tasting the wetness building there before returning to the spot that makes her tremble."
],
"oral_receiving_pleasure": [
"You use your tongue on her pussy until her thighs start reacting.",
"You put your mouth between her thighs and lick up to her clit.",
"You drag your tongue over her wet slit, then settle on her clit.",
"Your tongue works her pussy, moving between her clit and wet slit with steady pressure.",
"Your tongue moves between her slit and clit, changing pace when her thighs tense.",
"You eat her pussy with slow strokes, keeping your mouth close to her heat.",
"You lick her folds open and keep returning to her clit."
],
"orgasm": [
"The orgasm rolls through {name} in visible waves, her hips twitching and her breath breaking until it passes.",
"The orgasm breaks through the act, leaving breath, wet skin, and trembling muscles behind.",
"Your cock twitches as you reach the edge and finish hard.",
"{name} shudders through the orgasm, cunt pulsing as the last of the pleasure drains out of her.",
"You get close and keep going until the orgasm breaks through.",
"The build snaps, and you empty yourself where the act has taken you."
],
"penetration_pleasure": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You fuck her with steady thrusts, keeping your hips close.",
"You slide inside her cunt and let her body adjust around you.",
"You keep your cock inside her and build the pace from there.",
"You press deeper into her pussy and hold yourself there for a breath before moving again.",
"Your cock moves inside her pussy with a steady rhythm.",
"Your cock moves inside her pussy with a steady rhythm."
],
"pet_over_clothes": [
"You slide your hand over her clothes, feeling the shape of her body through the fabric.",
"Your palm traces her covered body without pushing underneath the fabric.",
"You rub her through her clothes, letting the fabric carry the pressure.",
"You keep the cloth between your hand and her skin while making the touch more intimate."
],
"pet_over_clothes_success": [
"You slide your hand over her clothes, feeling the shape of her body through the fabric.",
"Your palm traces her covered body without pushing underneath the fabric.",
"You rub her through her clothes, letting the fabric carry the pressure.",
"You keep the cloth between your hand and her skin while making the touch more intimate."
],
"petting": [
"Your hand lingers in a place that makes the closeness stop feeling casual.",
"Your hand settles against her hip, and you wait to see if she pulls away.",
"Your hand moves to her waist, close enough that she knows exactly what you are doing.",
"You let your hand linger where the contact can no longer be mistaken for casual."
],
"player_undress": [
"You remove your clothes while {name} watches.",
"You strip yourself down in front of {name}, giving her the full view.",
"You take your clothes off slowly enough for her to look.",
"You undress for her, leaving yourself exposed under her eyes."
],
"refusal_against_wall": [
"You line your cock up with her pussy, and she pulls back.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You start to enter her, but she stops you before it goes farther.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} puts a hand on your chest before you can pin her against the wall.",
"{name} plants a hand against your chest before the wall position can become sex.",
"{name} stops you before the act can begin."
],
"refusal_anal": [
"You try to continue, but {name} stops it before it goes farther.",
"You push toward anal, but {name} stops the idea before it can reach her ass.",
"You try to move the encounter toward her ass, but she blocks it.",
"You bring up anal, and {name} shuts the idea down before the scene can move there.",
"The request reaches a harder limit, and she shuts it down.",
"{name} makes it clear that anal is not happening now."
],
"refusal_anal_cowgirl": [
"You start to press into her asshole, but she refuses before it continues.",
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to take the action there, but she blocks the step before it becomes real.",
"You guide her over your cock and line the head up with her asshole.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_anal_doggy": [
"You start to press into her asshole, but she refuses before it continues.",
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} pulls her ass away before your cock can press against it.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_anal_missionary": [
"You start to press into her asshole, but she refuses before it continues.",
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You line your cock up with her ass, but she stops your hips before you push in.",
"{name} stops you before the act can begin."
],
"refusal_anal_reverse_cowgirl": [
"You start to press into her asshole, but she refuses before it continues.",
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_anal_talk": [
"You bring up anal, but {name} refuses to let the subject go any further.",
"You ask about anal, and {name} gives you a short answer that ends it.",
"{name} stops the topic before it can become pressure.",
"You mention her ass, and she makes the boundary clear.",
"The subject pushes too far, and she cuts it short.",
"{name} cuts off the anal talk before you can keep pushing the subject."
],
"refusal_anal_wall": [
"You start to press into her asshole, but she refuses before it continues.",
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_ask_anal_sex": [
"You ask for anal, and {name} tells you she is not ready for your cock in her ass.",
"You ask for anal, and {name} refuses before your cock gets near her ass.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You ask to fuck her ass, and she shuts the idea down immediately.",
"{name} stops you before the act can begin."
],
"refusal_ask_blowjob": [
"You ask for her mouth, but {name} keeps her eyes on yours and says no before anything starts.",
"You ask her to suck your cock, and she refuses before moving toward you.",
"You ask for a blowjob, and she refuses without moving toward your cock.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You ask for her mouth, and she refuses before your cock gets anywhere near her lips.",
"{name} stops you before the act can begin."
],
"refusal_ask_bottom_off": [
"You reach for her clothes, but {name} stops your hand before anything comes off.",
"You ask her to take off her bottoms, and she refuses the step.",
"{name} keeps that layer in place and refuses the next step.",
"The attempt to undress her goes too far, and she closes it down.",
"She catches the motion before the clothing can come off.",
"{name} makes it clear that this layer stays on."
],
"refusal_ask_bra_off": [
"You reach for her clothes, but {name} stops your hand before anything comes off.",
"You reach the clothing boundary, but {name} stops the undressing before it continues.",
"{name} keeps that layer in place and refuses the next step.",
"The attempt to undress her goes too far, and she closes it down.",
"You ask her to take off her bra, and she keeps it on.",
"{name} makes it clear that this layer stays on."
],
"refusal_ask_footjob": [
"{name} looks down at your cock, then back at you, and refuses the footjob before it starts.",
"You ask for a footjob, but {name} pulls her legs back and keeps her feet away from your cock.",
"You try to bring her foot back to your cock, but {name} pulls her legs away.",
"You try to guide her feet toward you, but she draws them under herself and stops the idea there."
],
"refusal_ask_handjob": [
"You ask for her hand, and {name} refuses without reaching for you.",
"You ask her to touch your cock, and she keeps her hands to herself.",
"You ask her to stroke your cock, and she keeps her hands off you.",
"You try to take the action there, but she blocks the step before it becomes real.",
"You ask her to touch your cock, and {name} keeps her hand away from it.",
"You ask her to touch your cock, and {name} keeps her hand away from it.",
"{name} stops you before the act can begin."
],
"refusal_ask_low_scene": [
"You try to continue, but {name} stops it before it goes farther.",
"You make the attempt, and {name} refuses it clearly.",
"The request is far ahead of what she is willing to allow, and she shuts it down immediately.",
"You make the request and wait for her answer.",
"The gap between the request and her comfort is too wide. She refuses before you can soften it."
],
"refusal_ask_naked": [
"You reach for her clothes, but {name} stops your hand before anything comes off.",
"You reach the clothing boundary, but {name} stops the undressing before it continues.",
"{name} keeps that layer in place and refuses the next step.",
"You ask her to get naked, and she refuses before the request turns into anything physical.",
"She catches the motion before the clothing can come off.",
"{name} makes it clear that this layer stays on."
],
"refusal_ask_normal_scene": [
"You ask for more, and {name} refuses before anything physical starts.",
"You ask, and she shuts the request down before the act can start.",
"You ask for more, and {name} refuses before anything changes.",
"You make the move, and she pulls back at once.",
"You ask for more, and {name} refuses before anything changes.",
"You ask her to go further."
],
"refusal_ask_panties_off": [
"You reach for her clothes, but {name} stops your hand before anything comes off.",
"You reach the clothing boundary, but {name} stops the undressing before it continues.",
"You ask her to remove her panties, and she keeps the final layer on.",
"The attempt to undress her goes too far, and she closes it down.",
"She catches the motion before the clothing can come off.",
"{name} makes it clear that this layer stays on."
],
"refusal_ask_permission_finger": [
"You ask to use your fingers, but {name} keeps the answer firm and her thighs closed.",
"You ask to finger her, and she refuses before your hand moves between her thighs.",
"You ask to use your fingers on her, and {name} refuses before your hand moves in.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You ask to finger her, and she refuses before your hand gets between her thighs.",
"{name} stops you before the act can begin."
],
"refusal_ask_permission_oral": [
"You try to continue, but {name} stops it before it goes farther.",
"You ask to lick her pussy, and she refuses before your mouth gets involved.",
"You ask to use your mouth on her, and {name} refuses before it becomes physical.",
"You try to take the action there, but she blocks the step before it becomes real.",
"You ask to lick her pussy, and {name} refuses before your mouth gets involved.",
"You ask to use your mouth on her, and she says no.",
"{name} stops you before the act can begin."
],
"refusal_ask_sex": [
"You ask to fuck her, and {name} refuses before either of you gets into position.",
"You ask for sex, and {name} makes it clear your cock is not going inside her.",
"You ask to fuck her, and she refuses before your cock gets near her pussy.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You ask for sex, and she refuses before either of you gets into position.",
"{name} stops you before the act can begin."
],
"refusal_ask_titfuck": [
"She hears the request, folds her arms over her chest, and stops you before your cock reaches her tits.",
"You try to move closer, but she backs away and refuses to use her breasts on you.",
"{name} rejects the titfuck and keeps your hands away from her top.",
"You ask for a titfuck, but {name} keeps her chest covered and refuses to get close.",
"The request goes nowhere. She keeps her chest out of reach and leaves you exposed."
],
"refusal_ask_top_off": [
"You ask her to take off her top, and she says no before either of you moves.",
"You reach the clothing boundary, but {name} stops the undressing before it continues.",
"{name} keeps that layer in place and refuses the next step.",
"The attempt to undress her goes too far, and she closes it down.",
"She catches the motion before the clothing can come off.",
"{name} makes it clear that this layer stays on."
],
"refusal_beg_anal_sex": [
"You beg for anal, and she refuses before anything physical starts.",
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_beg_blowjob": [
"You beg her to suck your cock, but {name} refuses without lowering her mouth.",
"You beg her to suck your cock, and she refuses without lowering her mouth.",
"You move closer, but she keeps your dick away from her lips.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You beg her to suck your cock, but she keeps her mouth away from you.",
"{name} stops you before the act can begin."
],
"refusal_beg_cunnilingus": [
"You try to get your mouth between her thighs, but {name} shifts away.",
"You lower your face toward her pussy, and she stops you before your tongue reaches her.",
"You beg to lick her pussy, and she keeps her thighs closed.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You beg to lick her pussy, but she keeps her thighs closed.",
"{name} stops you before the act can begin."
],
"refusal_beg_footjob": [
"You beg for her feet, but {name} only pulls her legs farther away and refuses to reward it.",
"Your pleading does not move her. She keeps her feet tucked back and leaves your cock untouched.",
"{name} refuses the footjob and gives you no opening to turn the begging into anything physical.",
"She sees how badly you want it, but she still keeps her feet away from you."
],
"refusal_beg_handjob": [
"You beg her to stroke your cock, and {name} still keeps her hands off you.",
"You beg her to stroke your cock, and she keeps her hands away from it.",
"You try to guide her, but she keeps her hands off you.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You beg her to stroke you, but she keeps her hands to herself.",
"{name} stops you before the act can begin."
],
"refusal_beg_low_scene": [
"You try to continue, but {name} stops it before it goes farther.",
"You try to push the act farther, but {name} stops before it can continue.",
"You try for more, but she blocks it before it starts.",
"You start, but she cuts it short.",
"You make the attempt, and {name} refuses it clearly.",
"You repeat the request, pleading with her this time."
],
"refusal_beg_normal_scene": [
"You try to continue, but {name} stops it before it goes farther.",
"You try for more, but she blocks it before it starts.",
"You ask again and beg her for it.",
"You make the attempt, and {name} refuses it clearly.",
"You make the move, and she pulls back at once.",
"You beg for more, but she still refuses before anything changes."
],
"refusal_beg_sex": [
"You beg to fuck her, but {name} only grows more uneasy and refuses the request.",
"You beg to fuck her, and {name} refuses before your cock gets near her pussy.",
"You beg to fuck her, and she refuses before your cock gets near her pussy.",
"You try to take the action there, but she blocks the step before it becomes real.",
"You beg to fuck her, and {name} still keeps her body out of position.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_beg_sixty_nine": [
"You beg for sixty-nine, and {name} refuses before either of you gets into position.",
"You beg for sixty-nine, and {name} refuses before your mouth or hers gets involved.",
"You move in for oral, but she keeps your mouth away.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_beg_titfuck": [
"You ask again, desperate for her breasts around your cock, and she shuts it down.",
"You beg for her tits, but {name} keeps her chest covered and does not move closer.",
"Your pleading only makes her pull back, one hand guarding her top while she refuses.",
"She sees how much you want her tits, but she keeps them away from you.",
"{name} refuses the titfuck and gives you no chance to turn the begging into contact."
],
"refusal_breast_sex": [
"You reach for her breasts, but {name} pulls back.",
"You try to use her chest, and she stops you before your cock can settle there.",
"You move toward her tits, but she covers herself."
],
"refusal_caress_thigh": [
"You start to move into that touch, but {name} stops you before it becomes familiar.",
"You reach for her, but {name} pulls back before the contact can settle.",
"{name} blocks the petting before your hand can settle where you want it.",
"Your hand moves up her thigh, and she shifts away before your fingers get higher.",
"The contact pushes too far, and she cuts it short.",
"Your hand starts up her thigh."
],
"refusal_command_low_scene": [
"You try to continue, but {name} stops it before it goes farther.",
"You give the command too early, and she rejects it before moving.",
"You make the attempt, and {name} refuses it clearly.",
"You make the move, and she pulls back at once.",
"You tell her what you want her to do.",
"You give the order, and {name} refuses before anything changes."
],
"refusal_command_normal_scene": [
"You try to continue, but {name} stops it before it goes farther.",
"You give the order, and {name} refuses to obey before anything physical starts.",
"You start, but she cuts it short.",
"You give the order, and {name} refuses before anything changes.",
"You make the move, and she pulls back at once.",
"You give her a direct order."
],
"refusal_cont_69_focus_her": [
"You try to get your mouth between her thighs, but {name} shifts away.",
"You lower your face toward her pussy, and she stops you before your tongue reaches her.",
"You try to keep your mouth doing most of the work in sixty-nine, but {name}'s body tenses against that pace.",
"Your tongue stays on her too insistently, and she shifts enough to make you ease off.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_69_grind": [
"You try to push your cock deeper into her mouth from the sixty-nine position, but she breaks the motion before it turns rough.",
"Your hips start grinding upward while your mouth stays on her pussy, and {name} stops the pressure before it goes too far.",
"You try to make her mouth take more of you, but she pulls back enough to make the limit clear.",
"The sixty-nine position tightens when you start fucking into her mouth, and she interrupts before the pressure builds.",
"You push your hips toward her mouth while keeping your tongue on her pussy."
],
"refusal_cont_69_keep": [
"You try to get your mouth between her thighs, but {name} shifts away.",
"You lower your face toward her pussy, and she stops you before your tongue reaches her.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"You try to keep mutual oral going, but her timing falters and the position loses its ease.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_69_let_her_focus_you": [
"You try to get your mouth between her thighs, but {name} shifts away.",
"You lower your face toward her pussy, and she stops you before your tongue reaches her.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"You hold back to let her work your cock, but {name} does not settle into taking over.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_69_to_sex": [
"You try to turn sixty-nine into sex, but {name} stops before your cock lines up with her pussy.",
"Your mouth leaves her pussy as you shift toward penetration, and she blocks the change.",
"You pull your mouth away and guide your cock toward her pussy."
],
"refusal_cont_anal_cowgirl": [
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_anal_doggy": [
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_anal_hold": [
"You try to continue, but {name} stops it before it goes farther.",
"You make the attempt, and {name} refuses it clearly.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_anal_missionary": [
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_anal_reverse_cowgirl": [
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_anal_slow": [
"You try to keep fucking her ass, but {name} pulls away before your cock pushes back in.",
"Your hips start another slow anal thrust, and she stops before you enter again.",
"You try to continue in her ass, but she moves off your cock."
],
"refusal_cont_anal_wall": [
"You line your cock up with her ass, and she pulls away.",
"You try to push toward anal, but {name} stops your hips before you enter her.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_analingus_circle": [
"You move toward her ass, but {name} stops you before your tongue or fingers get there.",
"You try to give her anal attention, and she pulls away.",
"Your tongue circles her asshole again, but the next pass makes her tighten instead of relax.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_analingus_keep": [
"You try to keep your mouth on her ass, but {name} pulls away before your tongue reaches her asshole again.",
"Your tongue moves back toward her asshole, and she closes the angle.",
"You try to keep rimming her, but she shifts out of reach."
],
"refusal_cont_analingus_slow": [
"You move toward her ass, but {name} stops you before your tongue or fingers get there.",
"You try to give her anal attention, and she pulls away.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"You slow the rimming down, and {name}'s body goes tense under the slower attention.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_analingus_to_anal": [
"You rise from rimming her and line your cock with her ass, but {name} pulls away before you enter her.",
"Your mouth leaves her asshole and your cock moves into place, but she stops the escalation.",
"You try to turn analingus into anal sex, and she blocks your hips before the first push."
],
"refusal_cont_analingus_to_cunni": [
"Your mouth starts moving from her ass back to her pussy, but {name} pulls away before your tongue reaches her slit.",
"You try to trade rimming for pussy licking, and she stops the change immediately.",
"Your tongue leaves her asshole, but she blocks the move before it reaches her pussy."
],
"refusal_cont_bj_deeper": [
"You try to guide the blowjob deeper, but {name} pulls her mouth away from your cock.",
"Your cock presses farther toward her throat, and she stops before taking more.",
"You try to make her take more of you, but she sits back from the deeper push."
],
"refusal_cont_bj_eye_contact": [
"You try to make her look up while she sucks you, but the eye contact makes her rhythm uneasy.",
"You offer your cock, and she refuses before her mouth touches it.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_bj_guide_rhythm": [
"You try to guide her mouth to your cock, but {name} sits back.",
"You offer your cock, and she refuses before her mouth touches it.",
"You put a hand at the back of her head and try to guide her mouth.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_bj_let_continue": [
"You try to guide her mouth to your cock, but {name} sits back.",
"You offer your cock, and she refuses before her mouth touches it.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"You try to let her keep going her way, but the blowjob loses its rhythm as her hesitation builds.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_bj_praise": [
"You try to guide her mouth to your cock, but {name} sits back.",
"You offer your cock, and she refuses before her mouth touches it.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"You praise her around the blowjob, but the words make her mouth slow instead of relax.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_bj_slow_down": [
"You try to guide her mouth to your cock, but {name} sits back.",
"You offer your cock, and she refuses before her mouth touches it.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"You slow the blowjob down, and {name}'s patience thins before the pace can settle.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_bj_to_sex": [
"You try to move from her mouth to sex, but {name} sits back before your cock reaches her pussy.",
"Her mouth leaves your cock, and she refuses when you try to line up with her.",
"You pull your cock from her mouth and bring it toward her pussy."
],
"refusal_cont_bj_touch_hair": [
"You try to guide her mouth to your cock, but {name} sits back.",
"You offer your cock, and she refuses before her mouth touches it.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_cunni_add_fingers": [
"You try to get your mouth between her thighs, but {name} shifts away.",
"You lower your face toward her pussy, and she stops you before your tongue reaches her.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"You add your fingers while your mouth stays on her, but the extra touch makes {name}'s thighs tense.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_cunni_keep": [
"You try to keep your mouth on her pussy, but {name} closes her thighs and stops you.",
"Your tongue returns to her slit, and she moves out of reach.",
"You lower your mouth for more cunnilingus, but she blocks the continuation."
],
"refusal_cont_cunni_tease": [
"You try to get your mouth between her thighs, but {name} shifts away.",
"You lower your face toward her pussy, and she stops you before your tongue reaches her.",
"You tease around her clit instead of giving her more, and the frustration turns into discomfort.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_cunni_to_analingus": [
"Your tongue starts moving from her pussy toward her ass, but {name} stops the shift before your mouth reaches her asshole.",
"You try to turn cunnilingus into rimming, and she closes the angle before it gets there.",
"Your mouth leaves her slit for her ass, but she pulls away from the change."
],
"refusal_cont_cunni_to_sex": [
"You lift your mouth from her pussy and try to move into sex, but {name} stops you before your cock lines up.",
"You lift your mouth from her pussy and bring your hips between her thighs.",
"You try to turn cunnilingus into penetration, but she stops the change before it starts."
],
"refusal_cont_finger_keep": [
"You try to keep fingering her, but {name} closes her thighs around your hand.",
"Your fingers start moving again inside her, and she stops the motion.",
"You try to push another stroke into her pussy, but she pulls away."
],
"refusal_cont_finger_tease": [
"You shift the fingering into a tease, but {name}'s body tightens against the stop-start rhythm.",
"You try to touch her between the thighs, and she stops you before your fingers settle.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_finger_to_mouth": [
"You move your hand toward her pussy, but {name} catches your wrist.",
"You try to touch her between the thighs, and she stops you before your fingers settle.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_footjob_keep": [
"You try to keep the footjob going, but {name} pulls her feet back before the rhythm returns.",
"You guide her feet toward your cock again, and she stops before contact settles.",
"You try to continue the footjob, but she breaks the position and refuses the pace.",
"Your hips move to chase the pressure of her feet, but she pulls away.",
"You try to restart the motion, and she keeps her feet out of reach."
],
"refusal_cont_hj_guide_rhythm": [
"You try to put her on your cock, but {name} pulls away.",
"You move your cock toward her touch, and she stops the contact.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_hj_keep": [
"You try to keep the handjob going, but {name} takes her hand off your cock.",
"Her fingers leave your shaft when you try to continue.",
"You guide her hand back toward your cock, and she refuses the extra strokes."
],
"refusal_cont_hj_kiss": [
"You try to put her on your cock, but {name} pulls away.",
"You move your cock toward her touch, and she stops the contact.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_hj_tease": [
"You try to put her on your cock, but {name} pulls away.",
"You move your cock toward her touch, and she stops the contact.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_hj_to_bj": [
"You try to guide her mouth toward your cock, but {name} sits back before her lips touch it.",
"You offer your cock to her mouth, and she refuses before the change happens.",
"Her hand is still around you when you try to bring her lips down, but she pulls away."
],
"refusal_cont_rubbing_keep": [
"You try to keep rubbing her through the fabric, but {name} stops your hand.",
"Your fingers return to the cloth over her pussy, and she catches your wrist.",
"You try to keep the through-clothing pressure going, but she blocks it."
],
"refusal_cont_rubbing_to_fingering": [
"You move your hand toward her pussy, but {name} catches your wrist.",
"You try to touch her between the thighs, and she stops you before your fingers settle.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"Your hand starts moving from the fabric toward bare skin, but {name} catches the change before your fingers slip inside.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_sex_cowgirl": [
"You try to keep the cowgirl rhythm going, but {name}'s hips slow with growing discomfort.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_sex_doggy": [
"You line your cock up with her pussy, and she pulls back.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_sex_missionary": [
"You line your cock up with her pussy, and she pulls back.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"You keep pressing in missionary, but her body stiffens under the next thrusts.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_sex_reverse_cowgirl": [
"You line your cock up with her pussy, and she pulls back.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"{name} stops the adjustment before it becomes the new act."
],
"refusal_cont_sex_to_69": [
"You try to shift from sex into sixty-nine, but {name} stops before either mouth reaches the other.",
"Your hips pull back to set up sixty-nine, but she stops the new position.",
"You break the thrusts and start turning the bodies into mutual oral, but {name} blocks the change."
],
"refusal_cont_sex_to_anal": [
"You try to push from sex toward anal, but {name} stops your hips before your cock reaches her ass.",
"You pull out of her pussy and guide your cock toward her asshole.",
"You pull back from her pussy and angle toward her ass, but {name} stops you before the change happens."
],
"refusal_cont_sex_wall": [
"You line your cock up with her pussy, and she pulls back.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You try to continue that way, but she breaks the rhythm with a clear no.",
"{name} interrupts the continuation before the new rhythm can take hold.",
"The move pushes the current state too far, and she blocks it.",
"You try to keep the wall sex urgent, but the pressure makes her brace instead of follow."
],
"refusal_cont_titfuck_keep": [
"You reach for her breasts, but {name} pulls back.",
"You try to use her chest, and she stops you before your cock can settle there.",
"You try to keep your cock between her tits, but she shifts away and breaks the pressure.",
"You guide her breasts together again, and she refuses before the titfuck can continue.",
"You chase the pressure of her tits, but she pulls her chest out of reach."
],
"refusal_cont_titfuck_let_work": [
"You reach for her breasts, but {name} pulls back.",
"You try to use her chest, and she stops you before your cock can settle there.",
"You try to let her breasts keep working you, but she stops before the rhythm returns.",
"You hold near her chest, and she moves back before your cock can slide between her tits.",
"You wait for her to continue the titfuck, but she cuts it off."
],
"refusal_cont_titfuck_lick_tip": [
"You reach for her breasts, but {name} pulls back.",
"You try to use her chest, and she stops you before your cock can settle there.",
"You try to guide the tip of your cock toward her mouth, but she refuses before licking it.",
"You push the titfuck toward her lips, and she turns away before contact.",
"You angle yourself for her tongue, but she stops the move at her chest."
],
"refusal_continue_rubbing": [
"You move your hand toward her pussy, but {name} catches your wrist.",
"You try to touch her between the thighs, and she stops you before your fingers settle.",
"You try to push the act farther, but {name} stops before it can continue.",
"You make the move, and she pulls back at once.",
"She pulls back before the rubbing can keep building.",
"Her body tenses and the rubbing goes too far for her."
],
"refusal_continue_state": [
"You try to continue, but {name} stops it before it goes farther.",
"You push the current act too far, and she cuts it short.",
"{name} interrupts the continuation before it can build further.",
"You try to keep her hand moving on your cock inside your pants.",
"{name} stops that version of the continuation."
],
"refusal_cowgirl": [
"You line your cock up with her pussy, and she pulls back.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You start to enter her, but she stops you before it goes farther.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} pulls back before she can lower herself onto your cock.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_demand_anal_sex": [
"You demand anal, and {name} refuses the command.",
"You order her to give you her ass, but she does not obey.",
"You command anal from her, and she shuts it down.",
"{name} refuses the anal demand before anything starts.",
"The order gets no opening, only refusal."
],
"refusal_demand_blowjob": [
"You demand a blowjob, and {name} rejects the order immediately.",
"You order her to use her mouth, and she refuses the command.",
"You command her to suck you, but she does not obey.",
"{name} shuts down the blowjob demand before anything starts.",
"The order gets no response except refusal."
],
"refusal_demand_cunnilingus": [
"You demand to go down on her, and {name} rejects the command.",
"You order her to open for your mouth, but she refuses.",
"You command her to let you lick her, and she shuts it down.",
"{name} refuses the cunnilingus demand before anything starts.",
"The order fails without becoming physical."
],
"refusal_demand_footjob": [
"You demand a footjob, and {name} refuses the command.",
"You order her to use her feet, but she does not obey.",
"{name} shuts down the footjob demand before anything starts.",
"The command gets a hard refusal.",
"You push the order, and she rejects it."
],
"refusal_demand_handjob": [
"You demand a handjob, and {name} refuses the command.",
"You order her to use her hand, but she does not obey.",
"You command her to stroke you, and she shuts it down.",
"{name} refuses the handjob demand before anything starts.",
"The order gets no touch, only refusal."
],
"refusal_demand_sex": [
"You demand sex, and {name} rejects the command.",
"You order her to fuck you, but she refuses.",
"You command her body like it is yours, and she shuts it down.",
"{name} refuses the sex demand before anything starts.",
"The order fails before it can become physical."
],
"refusal_demand_sixty_nine": [
"You demand sixty-nine, and {name} refuses the command.",
"You order her into the position, but she does not obey.",
"You command her mouth and body into it, and she shuts the order down.",
"{name} refuses the sixty-nine demand before anything starts.",
"The order gets no movement, only refusal."
],
"refusal_demand_titfuck": [
"You demand a titfuck, and {name} refuses the command.",
"You order her to use her breasts, but she does not obey.",
"You command her chest like it is yours, and she shuts it down.",
"{name} refuses the titfuck demand before anything starts.",
"The order fails without becoming physical."
],
"refusal_doggy": [
"You line your cock up with her pussy, and she pulls back.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You start to enter her, but she stops you before it goes farther.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} moves out of position before you can line your cock up behind her.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_finger_ass": [
"You move toward her ass, but {name} stops you before your tongue or fingers get there.",
"You start to move into that touch, but {name} stops you before it becomes familiar.",
"{name} blocks the petting before your hand can settle where you want it.",
"Your hand reaches the wrong level of intimacy, and she moves away.",
"The contact pushes too far, and she cuts it short.",
"You press a fingertip against her asshole and try to ease it in."
],
"refusal_finger_pussy": [
"You move your hand toward her pussy, but {name} catches your wrist.",
"You start to move into that touch, but {name} stops you before it becomes familiar.",
"{name} blocks the petting before your hand can settle where you want it.",
"Your hand reaches the wrong level of intimacy, and she moves away.",
"The contact pushes too far, and she cuts it short.",
"Your fingers move toward her slit."
],
"refusal_grind_together": [
"You move your hand toward her pussy, but {name} catches your wrist.",
"You start to move into that touch, but {name} stops you before it becomes familiar.",
"{name} blocks the petting before your hand can settle where you want it.",
"Your hand reaches the wrong level of intimacy, and she moves away.",
"The contact pushes too far, and she cuts it short.",
"You bring your hips against hers and try to grind through your clothes."
],
"refusal_lick_pussy": [
"You try to get your mouth between her thighs, but {name} shifts away.",
"You lower your face toward her pussy, and she stops you before your tongue reaches her.",
"You move in for oral, but she keeps your mouth away.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} closes her thighs before your tongue reaches her pussy.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_massage": [
"You move your hands into the massage, but {name} stops you before it continues.",
"You start the massage there, but she pulls back.",
"{name} notices where the massage is going and stops your hands before you can pretend it was accidental.",
"You try to work that spot, and {name} guides your hand away.",
"You press in with your hands, and {name} makes you stop."
],
"refusal_massage_ass": [
"You move your hands into the massage, but {name} stops you before it continues.",
"Your hands move to her ass, and {name} shifts away before you can knead it.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_back": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} blocks the touch before the massage can shift into that area.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_breasts": [
"You reach for her breasts, but {name} pulls back.",
"{name} blocks the touch before the massage can shift into that area.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"Your hands move toward her breasts, and {name} stops you before you touch them.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_chaste": [
"You move your hands into the massage, but {name} stops you before it continues.",
"You start the massage there, but she pulls back.",
"You try to continue the massage, but her body rejects it.",
"You try to work that spot, and {name} guides your hand away.",
"You press in with your hands, and {name} makes you stop.",
"You try to push the act farther, but {name} stops before it can continue."
],
"refusal_massage_escalate": [
"You move your hands into the massage, but {name} stops you before it continues.",
"You start the massage there, but she pulls back.",
"You try to work that spot, and {name} guides your hand away.",
"You press in with your hands, and {name} makes you stop.",
"{name} catches the escalation and shuts it down. The massage ends there."
],
"refusal_massage_inner_thighs": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} blocks the touch before the massage can shift into that area.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_legs": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} blocks the touch before the massage can shift into that area.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move along her legs, and she pulls them back before you can continue."
],
"refusal_massage_lower_back": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} blocks the touch before the massage can shift into that area.",
"Your hands move low on her back, and she shifts away from the pressure.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_neck": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} blocks the touch before the massage can shift into that area.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"{name} moves your hands away from her neck before the massage starts there.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_pussy_bare": [
"You start to move the massage to her bare pussy, but {name} catches your hand before it settles.",
"Your fingers reach between her thighs, and she closes them before the touch becomes direct.",
"You try to rub her bare slit, but she stops the massage from going that far.",
"Your hand moves toward her pussy, and she redirects it away immediately.",
"You push the massage toward explicit contact, but she blocks your wrist."
],
"refusal_massage_pussy_fabric": [
"You start to rub her pussy through the fabric, but {name} stops your hand before the pressure builds.",
"Your fingers press toward her covered slit, and she shifts away from the touch.",
"You try to turn the massage into rubbing through her clothes, but she cuts it off.",
"Your hand moves between her thighs over the fabric, and she closes the angle.",
"You push the massage toward her clothed pussy, but she blocks it before it can continue."
],
"refusal_massage_shoulders": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} moves away before your hands can settle on her shoulders.",
"The massage reaches the line she does not want crossed, and she closes it immediately.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_start": [
"You move your hands into the massage, but {name} stops you before it continues.",
"{name} blocks the touch before the massage can shift into that area.",
"You offer the massage and move your hands closer, but {name} refuses before you start.",
"{name} pulls the massage back to safer ground before it turns into more.",
"Your hands move too far for her, and she cuts the attempt short."
],
"refusal_massage_tongue_ass": [
"You move behind her with your mouth, but {name} pulls her ass away before your tongue gets there.",
"{name} tightens and shifts her hips out of reach.",
"You try to turn the massage into rimming, but she stops it immediately.",
"{name} reaches back and keeps your mouth away from her ass.",
"Your tongue gets too close for her, and she cuts the attempt short."
],
"refusal_massage_tongue_pussy": [
"You try to get your mouth between her thighs, but {name} shifts away before your tongue reaches her.",
"{name} closes her thighs and pulls back from your mouth.",
"You try to turn the massage into oral, but she stops you before your tongue can touch her.",
"{name} moves your head away and ends the massage before it becomes cunnilingus.",
"Your mouth gets too close for her, and she cuts the attempt short."
],
"refusal_massage_vagina": [
"Your fingers move between her thighs, and {name} catches your wrist before you touch her pussy.",
"Your fingers drift between her thighs, and she catches your wrist.",
"You guide the massage lower, but she refuses before it becomes direct.",
"Your hand reaches for her slit, and she closes her thighs against it.",
"You try to make the massage sexual, but she moves your hand away."
],
"refusal_missionary": [
"You line your cock up with her pussy, and she pulls back.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You start to enter her, but she stops you before it goes farther.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You line your cock up with her pussy, but she stops your hips before you push inside.",
"{name} stops you before the act can begin."
],
"refusal_pet_over_clothes": [
"You start to caress her through her clothes, but {name} catches your wrist before the touch settles.",
"Your hand presses over the fabric, and she pulls away before it becomes intimate.",
"You try to rub her through her clothes, but she stops the contact before it finds a rhythm.",
"{name} blocks the through-clothes touch and puts distance back between you."
],
"refusal_petting": [
"You try to move your hands into more intimate petting, but {name} stops the touch.",
"Your hand reaches too far, and she moves out of it.",
"{name} refuses the escalation before your hand can settle.",
"{name} moves your hand off her body before the touch can continue.",
"Your hand moves too far down her body, and she catches your wrist."
],
"refusal_private": [
"You try to continue, but {name} stops it before it goes farther.",
"You push toward a private act, but {name} stops the move before it starts.",
"You start, but she cuts it short.",
"You try, but {name} refuses even with privacy on your side.",
"{name} refuses the private escalation and keeps distance between you.",
"The request reaches the wrong place and she closes the boundary.",
"{name} keeps the private line shut for now."
],
"refusal_public": [
"You try to continue, but {name} stops it before it goes farther.",
"You start, but she cuts it short.",
"You try, but {name} glances around and shuts it down before anyone notices.",
"She blocks the public escalation before anyone else has a reason to notice.",
"The risk of being seen is too much, and she shuts the attempt down immediately."
],
"refusal_remove_panties": [
"You reach for her clothes, but {name} stops your hand before anything comes off.",
"You reach the clothing boundary, but {name} stops the undressing before it continues.",
"{name} keeps that layer in place and refuses the next step.",
"The attempt to undress her goes too far, and she closes it down.",
"She catches the motion before the clothing can come off.",
"{name} makes it clear that this layer stays on."
],
"refusal_remove_your_clothes": [
"You take off another layer, and {name}'s expression hardens the moment she sees you do it.",
"You strip down further in front of her, and {name} clearly does not like where you took it.",
"You keep undressing, and {name} gets visibly annoyed that you pushed it that far.",
"You remove another piece of clothing, and {name} makes it obvious she is not happy about it.",
"You undress further in front of her, but {name} clearly hates that you pushed it there.",
"You keep taking your clothes off, and {name} reacts with open irritation instead of stopping you."
],
"refusal_reverse_cowgirl": [
"You line your cock up with her pussy, and she pulls back.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You start to enter her, but she stops you before it goes farther.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"{name} shifts away before she can sit back onto your cock.",
"{name} stops you before the act can begin."
],
"refusal_rub_breasts_fabric": [
"You reach for her breasts, but {name} pulls back.",
"You start to move into that touch, but {name} stops you before it becomes familiar.",
"{name} catches your wrist before your hand can rub her tits through the fabric.",
"Your hand reaches the wrong level of intimacy, and she moves away.",
"The contact pushes too far, and she cuts it short.",
"You put your hand over her breast and start rubbing through the fabric."
],
"refusal_rub_pussy_fabric": [
"You start to move into that touch, but {name} stops you before it becomes familiar.",
"{name} blocks the petting before your hand can settle where you want it.",
"Your hand presses between her thighs over the fabric, and she closes her legs around your wrist.",
"Your hand reaches the wrong level of intimacy, and she moves away.",
"You press your fingers to her pussy through the fabric and start to rub."
],
"refusal_sex": [
"You push toward sex, but {name} stops before your cock can become part of the answer.",
"You try to push inside her, but {name} stops your hips before penetration continues.",
"{name} refuses the move into sex and keeps her body out of position.",
"The sexual step reaches the line she will not cross.",
"{name} blocks the attempt before penetration can happen."
],
"refusal_sit_on_face": [
"You ask her to sit on your face, but she refuses to put her pussy over your mouth.",
"You lower your face toward her pussy, and she stops you before your tongue reaches her.",
"You move in for oral, but she keeps your mouth away.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You ask her to sit on your face, but she keeps her pussy away from your mouth.",
"{name} stops you before the act can begin."
],
"refusal_sixty_nine": [
"You try to get your mouth between her thighs, but {name} shifts away.",
"You try to move into sixty-nine, but {name} refuses before your mouth and her mouth get involved.",
"You move in for oral, but she keeps your mouth away.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses before your bodies can turn into position and your mouths get involved.",
"The request reaches the line she will not cross, and she closes it immediately.",
"{name} stops you before the act can begin."
],
"refusal_slide_hand_inside_panties_public": [
"You try to slide your hand inside her panties in public, but {name} stops you before your fingers get under the fabric.",
"Your hand moves toward the edge of her panties, and she clamps down before anyone can notice.",
"You try to push the public touch under her panties, but she catches your wrist.",
"You start to slip inside her underwear, and she blocks the movement immediately.",
"You reach for the private heat under her panties, but the public risk makes her shut it down."
],
"refusal_slide_inside_panties_public": [
"You try to slip your hand inside {name}'s panties, but the public risk makes her clamp down and stop you before your fingers get under the fabric.",
"You try to push the public rubbing further, but she blocks your hand before it can slide inside her panties.",
"Your fingers reach for the heat under her panties, and she catches your wrist before the public touch goes that far."
],
"refusal_strip_ask": [
"You reach for her clothes, but {name} stops your hand before anything comes off.",
"You start to undress her, and {name} keeps the clothing in place.",
"{name} keeps her clothes in place.",
"{name} gives a small shake of the head and keeps herself covered.",
"{name} refuses to undress further."
],
"refusal_strip_attempt": [
"You reach for her clothes, but {name} stops your hand before anything comes off.",
"You start to undress her, and {name} keeps the clothing in place.",
"{name} catches your hand and stops the undressing.",
"{name} pulls the fabric back into place.",
"{name} blocks your hands before more skin is exposed."
],
"refusal_strip_together": [
"You start stripping first, but {name} refuses to join you.",
"You reach the clothing boundary, but {name} stops the undressing before it continues.",
"{name} keeps that layer in place and refuses the next step.",
"You try to make the undressing mutual, but {name} keeps her clothes on.",
"She catches the motion before the clothing can come off.",
"{name} makes it clear that this layer stays on."
],
"refusal_suck_clit": [
"You try to get your mouth between her thighs, but {name} shifts away.",
"You lower your face toward her pussy, and she stops you before your tongue reaches her.",
"You move in for oral, but she keeps your mouth away.",
"You try to take the action there, but she blocks the step before it becomes real.",
"{name} refuses the escalation before your bodies can settle into it.",
"You move your mouth toward her clit, and she pulls her hips away.",
"{name} stops you before the act can begin."
],
"refusal_suck_nipples": [
"You reach for her breasts, but {name} pulls back.",
"You start to move into that touch, but {name} stops you before it becomes familiar.",
"{name} turns her chest away before your mouth reaches her nipple.",
"Your hand reaches the wrong level of intimacy, and she moves away.",
"The contact pushes too far, and she cuts it short.",
"{name} stops you before your lips can close around her nipple."
],
"refusal_try_bottom_off": [
"You reach for her clothes, but {name} stops your hand before anything comes off.",
"You reach the clothing boundary, but {name} stops the undressing before it continues.",
"{name} keeps that layer in place and refuses the next step.",
"The attempt to undress her goes too far, and she closes it down.",
"She catches the motion before the clothing can come off.",
"{name} makes it clear that this layer stays on."
],
"refusal_try_slip_inside": [
"You try to push inside her, but {name} stops your hips before penetration continues.",
"You try to push your cock inside her, but {name} stops your hips before you enter her.",
"You try to turn the rubbing into penetration, but {name} stops your hips before you enter her.",
"Your cock presses toward her pussy, and she moves her hips out of line.",
"The contact pushes too far, and she cuts it short.",
"You line your cock up with her slit and try to push in."
],
"refusal_try_top_off": [
"You reach for her clothes, but {name} stops your hand before anything comes off.",
"You reach the clothing boundary, but {name} stops the undressing before it continues.",
"{name} keeps that layer in place and refuses the next step.",
"The attempt to undress her goes too far, and she closes it down.",
"She catches the motion before the clothing can come off.",
"{name} makes it clear that this layer stays on."
],
"refusal_unhook_bra": [
"You reach for her clothes, but {name} stops your hand before anything comes off.",
"Your fingers reach the clasp of her bra, but she catches your hand before it opens.",
"{name} keeps that layer in place and refuses the next step.",
"The attempt to undress her goes too far, and she closes it down.",
"She catches the motion before the clothing can come off.",
"{name} makes it clear that this layer stays on."
],
"remove_panties": [
"You reach for her panties and start to slide the last fabric down.",
"Your fingers hook the edge of her panties and begin pulling them away from her pussy.",
"You move the panties down slowly, watching whether she lets the final layer go."
],
"remove_panties_success": [
"You slide her panties down, revealing her wet pussy.",
"Her bare pussy and ass are fully exposed once the panties are gone.",
"Her slick folds glisten as you pull the panties away.",
"Thick wetness clings to her panties as you remove them.",
"She stays dripping wet once her pussy is completely revealed."
],
"remove_your_clothes_success": [
"You remove your clothes while {name} watches.",
"You strip down in front of her and let her see you.",
"You take your clothes off slowly enough for her to look.",
"You undress for her, leaving yourself exposed under her eyes.",
"You pull your shirt off first, then keep going when she does not look away."
],
"reverse_cowgirl": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You fuck her with steady thrusts, keeping your hips close.",
"You slide inside her cunt and let her body adjust around you.",
"{name} turns away and lowers herself onto your cock in reverse cowgirl, letting you watch her ass move."
],
"reverse_cowgirl_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You fuck her with steady thrusts, keeping your hips close.",
"You slide inside her cunt and let her body adjust around you.",
"{name} turns away and lowers herself onto your cock in reverse cowgirl, letting you watch her ass move."
],
"rub_breasts_fabric": [
"You rub her tits through her clothes, letting the fabric drag over her nipples.",
"Your hand moves over her chest, rubbing her tits firmly through the fabric.",
"You palm her tits through her clothes, slow enough to feel how her nipples react underneath.",
"Your fingers press into her tits through the fabric, teasing the shape and weight of them without pulling anything aside.",
"You rub over her nipples through her clothes, keeping the touch hidden under the ordinary look of fabric."
],
"rub_breasts_fabric_success": [
"You rub her tits through her clothes, letting the fabric drag over her nipples.",
"Your hand moves over her chest, rubbing her tits firmly through the fabric.",
"You palm her tits through her clothes, slow enough to feel how her nipples react underneath.",
"Your fingers press into her tits through the fabric, teasing the shape and weight of them without pulling anything aside.",
"You rub over her nipples through her clothes, keeping the touch hidden under the ordinary look of fabric."
],
"rub_pussy_fabric": [
"You press two fingers against {name}'s pussy through the fabric, rubbing slowly until the cloth starts dragging wetly over her slit.",
"You drag your hand over her clothed slit until the fabric starts to dampen.",
"You press your fingers against her pussy through the fabric and rub in short strokes.",
"You rub her through her clothes, making the fabric slide against her pussy.",
"You press your palm between her thighs and drag it over her covered slit."
],
"rub_pussy_fabric_success": [
"You drag your hand over her clothed slit until the fabric starts to dampen.",
"You press your fingers against her pussy through the fabric and rub in short strokes.",
"You rub her through her clothes, letting the fabric carry each stroke."
],
"rubbing_pleasure": [
"You drag your hand over her clothed slit until the fabric starts to dampen.",
"You press your fingers against her pussy through the fabric and rub in short strokes.",
"Your fingers rub her pussy through the fabric, keeping the friction steady.",
"Your fingers stay on her pussy through the fabric, working the same slow friction.",
"You keep your palm against her pussy and build the friction slowly."
],
"rubbing_to_fingering": [
"The rubbing through fabric becomes direct when your fingers slip past the last layer and find her wet pussy.",
"You move from rubbing her through the cloth to touching her cunt directly.",
"Your fingers leave the fabric behind and slide into the wet slit underneath.",
"The teasing over her clothes turns into fingering as your hand finally gets under the barrier.",
"You stop grinding fabric against her pussy and push your fingers into the slick heat below."
],
"sex": [
"You push your cock into her wet pussy and start thrusting slowly.",
"Your cock sinks into her pussy and you start fucking her.",
"Your cock pushes into her pussy and the act becomes sex.",
"{name} pulls you closer as penetration replaces anticipation, her soaked cunt tightening around your cock.",
"You push into her until your hips meet hers.",
"She spreads her legs and takes your cock."
],
"sex_sex_position_switch": [
"You change position without pulling out, your cock sliding inside her through the movement.",
"You move her into another position and keep your cock buried in her cunt.",
"The position changes around your joined bodies, her pussy tightening around you as you move.",
"You guide her into a new position without letting the sex break.",
"Your cock stays inside her as you shift her body and start fucking her a different way."
],
"sit_on_face_success": [
"You use your tongue on her pussy until her thighs start reacting.",
"You put your mouth between her thighs and lick up to her clit.",
"You drag your tongue over her wet slit, then settle on her clit.",
"You eat her pussy with slow strokes, keeping your mouth close to her heat.",
"You ask {name} to sit on your face, then settle your mouth under her pussy when she does.",
"You ask {name} to sit on your face and wait beneath her until she lowers herself.",
"You lick her folds open and keep returning to her clit."
],
"sixty_nine": [
"She adjusts over you until your tongue reaches her slit and her mouth can take your cock without either of you staying passive.",
"The 69 starts uneven and hungry, your tongue working her cunt while her lips and hand answer around your shaft.",
"You get into Sixty-nine, your mouth on her pussy while hers works your cock.",
"She lowers herself over your face and takes your cock into her mouth.",
"Your tongue works her cunt while she sucks you at the same time."
],
"sixty_nine_success": [
"Your tongue stays on her clit as her lips move around your dick.",
"You keep your mouth on her pussy while she works your cock.",
"You stay in sixty-nine, eating her pussy while she keeps your cock wet.",
"Her mouth and your tongue work at the same time, sloppy and close.",
"You stay in sixty-nine, your mouth on her pussy while her mouth keeps working your cock.",
"You lick her through another moan while she keeps sucking you."
],
"sixty_nine_to_sex": [
"You untangle from sixty-nine and guide your cock to her wet pussy while both of you are still slick from each other's mouths.",
"Her mouth leaves your cock as you turn her under you and line up with her cunt.",
"You pull away from the messy oral position and press your cock against the slit your tongue just worked.",
"You shift out of sixty-nine and replace mouths with penetration.",
"The shared oral breaks apart long enough for your cock to find her soaked pussy."
],
"slide_hand_inside_panties_public_success": [
"Your hand slips inside her panties in public, fingers finding heat while the risk tightens around you both.",
"You slide your fingers under her panties, keeping the movement small enough to hide.",
"Your hand finds her slit inside her panties while the public risk makes every stroke sharper.",
"You ease past the edge of her panties and touch her where nobody else can see.",
"You keep her close while your fingers work inside her panties, careful not to draw attention."
],
"slide_inside_panties_public": [
"Your hand slips inside her panties in public, fingers finding heat while the risk tightens around you both.",
"You slide your fingers under her panties, keeping the movement small enough to hide.",
"Your hand finds her slit inside her panties while the public risk makes every stroke sharper.",
"You ease past the edge of her panties and touch her where nobody else can see.",
"You keep her close while your fingers work inside her panties, careful not to draw attention."
],
"start_anal": [
"You ease your cock into her ass slowly, giving her time to take the stretch.",
"You press into her tight asshole inch by inch.",
"Your cock presses into her ass slowly, giving her time to adjust to the stretch.",
"Your cock presses into her ass steadily, giving her time to adjust to the stretch.",
"Your cock presses steadily into her ass, giving her time to adjust to the stretch."
],
"start_analingus": [
"Your mouth moves to her ass and your tongue starts circling her asshole with slow pressure.",
"Your mouth moves to her ass and your tongue starts circling her asshole with steady pressure.",
"Your mouth moves steadily to her ass, and your tongue starts circling her asshole with slow pressure.",
"Your mouth moves to her ass and your tongue begins circling her asshole with slow pressure."
],
"start_blowjob": [
"You guide your cock to her lips and let her mouth close around it.",
"She lowers herself toward your cock and starts using her mouth, tongue working the head before she takes more of you in.",
"She takes your cock into her mouth and works the head with her tongue.",
"She lowers herself toward your cock and begins using her mouth, tongue working the head before she takes more of you in.",
"She sucks you slowly at first, tongue moving around the head."
],
"start_breast_sex": [
"She squeezes her tits around your cock and lets you thrust between them.",
"Her tits close around your cock and the first slow thrust slides between them.",
"Her tits close around your cock and the first steady thrust slides between them.",
"She carefully closes her tits around your cock, and the first slow thrust slides between them.",
"Your shaft slides between her breasts while she holds them tight."
],
"start_cunnilingus": [
"Your mouth settles between her thighs and your tongue starts licking her pussy.",
"Your steady mouth settles between her thighs and your tongue starts licking her pussy.",
"You put your mouth between her thighs and lick up to her clit.",
"You drag your tongue over her wet slit, then settle on her clit.",
"Your mouth settles between her thighs and your tongue begins licking her pussy."
],
"start_fingering": [
"You slide your fingers into her wet pussy and start with slow strokes.",
"You keep your hand between her thighs and push deeper by small degrees.",
"You use your fingers on her slit until she opens enough to take more.",
"Your fingers slide into her pussy and start working her inner walls with deliberate pressure.",
"Your fingers slide steadily into her pussy and start working her inner walls with deliberate pressure.",
"You work one finger inside her, then bring your thumb to her clit.",
"You finger her carefully, feeling her cunt tighten around each stroke."
],
"start_handjob": [
"She wraps her hand around your cock and starts stroking.",
"You guide her fingers around your shaft and let her work you.",
"Her hand wraps around your cock and begins stroking you with a slow, testing grip.",
"Her hand wraps around your cock and begins stroking you with a steady, testing grip.",
"Her hand wraps carefully around your cock and begins stroking you with a slow, testing grip."
],
"start_rubbing": [
"You drag your hand over her clothed slit until the fabric starts to dampen.",
"You press your fingers against her pussy through the fabric and rub in short strokes.",
"Your hand rubs her pussy through the fabric until the cloth drags against her slit.",
"Your steady hand rubs her pussy through the fabric until the cloth drags against her slit.",
"You keep your palm against her pussy and build the friction slowly."
],
"start_sex": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You fuck her with steady thrusts, keeping your hips close.",
"You slide inside her cunt and let her body adjust around you.",
"You keep your cock inside her and build the pace from there.",
"You press deeper into her pussy and hold yourself there for a breath before moving again.",
"Your cock pushes into her pussy and the act becomes sex.",
"Your cock pushes steadily into her pussy, and the act becomes sex."
],
"start_sixty_nine": [
"You settle into sixty-nine, your mouth on her pussy while hers works your cock.",
"You trade focus back and forth, mouth on pussy and mouth on cock.",
"You shift into sixty-nine, your mouth on her pussy while hers works your cock.",
"You keep licking her as she takes your cock into her mouth.",
"You line up together so your tongue can stay on her clit while she sucks you."
],
"strip_ask": [
"You ask for the next layer and wait for her answer before anything comes off.",
"You ask her to remove the layer you named.",
"You ask her to remove one more piece and leave the choice in her hands."
],
"strip_attempt": [
"You reach for the next layer and start to move it, watching whether she stops you.",
"Your hands move to her clothes, testing whether she will let you remove another layer.",
"You try to remove the next layer without skipping past what she has allowed."
],
"strip_together": [
"You suggest stripping together and start with your own clothes while watching her reaction.",
"You start removing your own clothes while asking her to do the same.",
"You invite her to strip with you, waiting to see if she matches the first piece you remove.",
"You turn the undressing mutual, letting your clothes come off as hers start to follow."
],
"strip_together_success": [
"You both undress, clothes falling until nothing separates you.",
"You remove your clothes while she removes hers, the two of you closing the distance as the layers drop.",
"The two of you strip together, skin replacing fabric piece by piece.",
"Bare skin meets bare skin as the last pieces vanish.",
"She stays close, breathing harder once you are both completely exposed."
],
"suck_clit_success": [
"You put your mouth between her thighs and lick up to her clit.",
"You drag your tongue over her wet slit, then settle on her clit.",
"Your mouth focuses on her clit, sucking and licking until her hips start to answer.",
"You eat her pussy with slow strokes, keeping your mouth close to her heat.",
"You lick her folds open and keep returning to her clit."
],
"suck_nipples": [
"You bring your mouth to one nipple and suck slowly, keeping your hand on her other breast.",
"Your lips close around her nipple, sucking carefully while your tongue draws the reaction out.",
"Your mouth closes around her nipple, tongue and lips working until her chest rises into the contact.",
"Your mouth closes around her nipple, sucking slowly while your tongue keeps working the hardening tip.",
"You suck her nipple with slow pressure, letting your tongue move when her chest lifts toward your mouth."
],
"suck_nipples_success": [
"You bring your mouth to one nipple and suck slowly, keeping your hand on her other breast.",
"Your lips close around her nipple, sucking carefully while your tongue draws the reaction out.",
"Your mouth closes around her nipple, tongue and lips working until her chest rises into the contact.",
"Your lips close around her nipple and suck with slow pressure until her chest lifts into your mouth.",
"You suck her nipple with slow pressure, letting your tongue move when her chest lifts toward your mouth."
],
"touch": [
"You touch her and leave your hand there long enough for her to react.",
"Your hand rests against her body long enough for her to react.",
"Your hand settles on her for a deliberate touch.",
"You close the distance with one steady touch and wait for her reaction."
],
"try_bottom_off": [
"You reach for her bottoms and start to pull them down, watching whether she stops you.",
"Your hands move to her waistband and test whether the lower layer can come off.",
"You try to remove her bottoms, keeping the motion slow enough for her to refuse."
],
"try_bottom_off_success": [
"You pull her bottoms down, and she shifts her hips to let them come off.",
"Her bottoms slide away under your hands, leaving her panties exposed.",
"She lets you remove the lower layer and stays within reach afterward.",
"You strip her bottoms off successfully, stopping before the panties."
],
"try_slip_inside_success": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You fuck her with steady thrusts, keeping your hips close.",
"You guide your cock toward her wet slit and try to slip inside while the grinding is still hot.",
"You slide inside her cunt and let her body adjust around you.",
"The rubbing turns into a real attempt to enter her as you press the head of your cock to her pussy."
],
"try_top_off": [
"You reach for her top and start to lift it, testing whether she lets the layer come off.",
"Your hands move to her top, pulling only as far as her reaction allows.",
"You try to remove her top, giving her a second to stop the motion."
],
"try_top_off_success": [
"You pull her top up, and she lifts her arms to let you remove it.",
"Her top comes off under your hands, leaving the next layer exposed.",
"She lets you strip the top away and stays close afterward.",
"You remove her top successfully, stopping with the layer underneath still respected."
],
"undress": [
"One clothing layer comes off, and the scene becomes more exposed.",
"The next layer is removed, leaving more skin visible than before.",
"Another layer comes off, leaving more skin exposed.",
"The next piece of clothing comes off, and her bare skin changes how close you are standing."
],
"unhook_bra": [
"You reach for the clasp of her bra and test whether she lets your fingers work it open.",
"Your hands move behind her bra, waiting for the moment she allows the clasp to open.",
"You start to unhook her bra, close enough to feel her breathing change."
],
"unhook_bra_success": [
"You unhook her bra, and the fabric loosens until her bare breasts are free.",
"The clasp opens under your fingers, letting the bra slide away from her tits.",
"She lets you remove the bra, exposing her chest completely.",
"Her bra comes off in your hands, leaving her nipples bare."
],
"wall": [
"You push your cock into her wet pussy and start thrusting slowly.",
"You press {name} against the wall and guide your cock into her pussy while holding her there.",
"You slide inside her cunt and let her body adjust around you."
],
"rub_ass_clothes_success": [
"You slide your hand over her ass through her clothes, squeezing just enough to make the touch impossible to ignore.",
"Your palm settles on her ass and rubs through the fabric, slow and deliberate.",
"You rub her ass through her clothes, feeling the curve of her under your hand.",
"Your fingers press into her ass through the fabric, testing how much she lets you take.",
"You palm her ass through her clothes, keeping the touch low and close."
],
"bring_hand_inside_pants_success": [
"You guide her hand to the front of your pants and start pulling it inside.",
"You take her wrist and bring her hand toward your cock through the opening of your pants.",
"You move her hand down to your pants, making it clear you want her fingers around your cock.",
"You bring her hand inside your pants, pressing her fingers toward your hard cock.",
"You guide her hand under the fabric, asking her to touch your cock where no one is supposed to see."
],
"cont_public_handjob_keep_success": [
"Her hand stays inside your pants, fingers moving over your cock with small, careful strokes.",
"She keeps jerking you under the cover of your clothes, her hand hidden but not gentle.",
"Her fingers tighten around your cock inside your pants, stroking you while trying not to draw attention.",
"She keeps her hand there, working your cock in short strokes that look almost harmless from outside.",
"Her hand moves inside your pants, careful enough to hide it and firm enough to make you feel every stroke."
],
"come_public_hand_success": [
"She keeps her hand hidden inside your pants while you cum into her palm.",
"You stay still enough to hide it as your cock pulses into her hand.",
"Her fingers tighten around your cock, and you cum into her hidden hand.",
"You finish into her hand under the cover of your clothes, trying not to make the public risk obvious.",
"Your cock twitches in her grip, spilling cum into her palm inside your pants."
],
"come_public_hand_failure": [
"She pulls her hand out before you can finish into it.",
"She catches the risk too late for comfort and stops before you can cum in her hand.",
"Her hand leaves your pants before the orgasm can land there."
],
"talk_anal_private": [
"You ask her what she thinks about anal, keeping your voice direct enough that she cannot pretend she misunderstood.",
"You bring up anal and watch how her expression changes before she answers.",
"You ask about her ass plainly, not joking around it or hiding the question.",
"You talk about anal with her, careful enough to give her room to answer honestly.",
"You ask if anal is something she would ever want to try with you."
],
"talk_anal_private_success": [
"You ask her what she thinks about anal, keeping your voice direct enough that she cannot pretend she misunderstood.",
"You bring up anal and watch how her expression changes before she answers.",
"You ask about her ass plainly, not joking around it or hiding the question.",
"You talk about anal with her, careful enough to give her room to answer honestly.",
"You ask if anal is something she would ever want to try with you."
],
"talk_anal_public": [
"You lower your voice and ask about anal where the wrong person could still hear too much.",
"You bring up anal quietly, keeping the words close enough that only she should catch them.",
"You ask about her ass in public, voice low and careful, watching her reaction more than the room.",
"You mention anal under your breath, risky enough that the setting matters even without touching her.",
"You ask if she would ever let you have her ass, keeping the question quiet but impossible to mistake."
],
"talk_anal_public_success": [
"You lower your voice and ask about anal where the wrong person could still hear too much.",
"You bring up anal quietly, keeping the words close enough that only she should catch them.",
"You ask about her ass in public, voice low and careful, watching her reaction more than the room.",
"You mention anal under your breath, risky enough that the setting matters even without touching her.",
"You ask if she would ever let you have her ass, keeping the question quiet but impossible to mistake."
],
"refusal_talk_anal_private_scene": [
"You bring up anal, but she refuses to let the subject go any further.",
"You ask about anal, and she shuts the question down before it can become pressure.",
"You try to talk about her ass, but she makes the boundary clear."
],
"refusal_talk_anal_public_scene": [
"You bring up anal in public, and she cuts the subject off before anyone can hear more.",
"You lower your voice to ask about anal, but the public setting makes her shut it down at once.",
"You mention her ass where someone could overhear, and she stops the conversation immediately."
],
"blowjob_to_sex": [
"Her lips leave your cock wet as you pull her up and line yourself with her pussy.",
"You guide her off your cock and move between her legs before the saliva can cool.",
"You lift her from your shaft and drag the wet head of your cock against her slit.",
"Her mouth leaves you slick, and you use that wetness as you push toward her cunt.",
"You break the blowjob and turn the heat of her mouth into the first push between her thighs."
],
"cunnilingus_to_analingus": [
"Your mouth leaves her pussy and moves lower, dragging the wet attention toward her ass.",
"You leave her clit slick and sensitive before your tongue finds the tighter place below.",
"The oral shifts from her pussy to her ass, slower and dirtier so she understands the change.",
"You drag the wetness down from her slit and start rimming her with careful pressure.",
"Your mouth moves from her cunt to her asshole, turning the same heat into something more taboo."
],
"analingus_to_cunnilingus": [
"Your tongue leaves her asshole and returns to her wet pussy, making the pleasure easier for her to take.",
"You move your mouth back up from her ass to her slit, trading taboo pressure for direct clit work.",
"The analingus melts back into cunnilingus as your tongue finds her pussy again.",
"You leave her ass wet and return to her cunt, pulling her back into a more familiar rhythm.",
"Your mouth moves from her asshole to her clit, letting the dirty tension turn into wet pleasure."
],
"analingus_to_anal": [
"You stop rimming her long enough to press your cock against her wet asshole.",
"Your tongue leaves her ass slick before your cock takes its place at the tight hole.",
"The analingus turns heavier as you replace your mouth with the head of your cock.",
"You move from rimming to anal sex, holding steady while her asshole adjusts to the new pressure.",
"Her ass is wet from your mouth when your cock starts pressing in."
],
"sex_to_anal": [
"You pull from her wet pussy and press your cock against her tight asshole, letting the switch happen carefully.",
"The vaginal rhythm breaks as you guide your slick cock from her cunt to her ass.",
"You move out of her pussy and settle at her asshole, waiting for her body to accept the new pressure.",
"Her cunt leaves your cock wet before you guide it toward her ass.",
"You trade the wet slide of her pussy for the tighter pressure of her ass, moving only when she can take it."
],
"sex_to_69": [
"You break the thrusting and turn the heat into mutual oral, pulling her mouth toward your cock while yours finds her pussy.",
"The sex pauses with her pussy still wet from your cock, then changes into mouths and tongues.",
"You shift out of penetration and pull her into sixty-nine before the heat can fade.",
"You trade thrusting for mutual oral, keeping her wet cunt close to your mouth while she lowers to your cock.",
"The fucking stops long enough for both mouths to take over."
],
"handjob_to_blowjob": [
"Her hand keeps stroking until her mouth lowers and takes over around the head of your cock.",
"You guide the handjob toward her lips, and she replaces her fingers with wet heat.",
"Her fingers stay at the base while her mouth closes around your cock.",
"You guide her hand up from your shaft, and she bends down to take the head into her mouth.",
"She keeps you steady with her hand while her mouth moves onto your cock."
],
"fingering_to_cunnilingus": [
"Your fingers leave her wet enough for your mouth to take over, tongue settling against her clit.",
"You draw your fingers back from her cunt and lower your mouth to the slick slit you opened.",
"Your hand gives way to your tongue, turning the fingering into wet, direct oral.",
"You pull your fingers out slowly and replace them with your mouth between her thighs.",
"Her pussy stays open and slick from your fingers when your tongue finds her clit."
],
"cont_rubbing_to_fingering": [
"The rubbing through fabric becomes direct when your fingers slip past the last layer and find her wet pussy.",
"You move from rubbing her through the cloth to touching her cunt directly.",
"Your fingers leave the fabric behind and slide into the wet slit underneath.",
"The teasing over her clothes turns into fingering as your hand finally gets under the barrier.",
"You stop grinding fabric against her pussy and push your fingers into the slick heat below."
]
}
END_SCENE_DESCRIPTIONS_SEX %/<<run setup.CC.init()>>
<<set $cc.view = "shop">>
<<set $cc.passageHint = "Shop">>
<<= setup.CC.view("shop")>><<run setup.CC.init()>>
<<if $cc.location eq "home" and $cc.mode neq "encounter">>
<div class="cc-root native-home-sleep">
<div class="card sleep-native-page">
<h1>Sleep</h1>
<p class="sleep-direct-link">[[Sleep and end day|Sleep Checkpoint]]</p>
</div>
</div>
<<else>>
<<goto "Map">>
<</if>><<run setup.CC.init()>>
<div class="cc-root"><div class="card sleep-native-page"><h1>Ending the day...</h1></div></div>
<<if $cc.location eq "home" and $cc.mode neq "encounter">>
<<run setup.CC.sleep()>>
<<goto "New Day">>
<<else>>
<<set $cc.last = { type: "bad", text: "You need to be home and out of any open interaction before you can sleep." }>>
<<if $cc.location eq "home">>
<<goto "Home">>
<<else>>
<<goto "Map">>
<</if>>
<</if>><div class="start-intro-full warning-intro-full">
<div class="card start-warning-card">
<div class="num">Fair warning</div>
<h1>This game is very grindy</h1>
<p>This game has very little to no story, and lots of grind and stat-building in a sandbox world.</p>
<div class="start-question">Are you sure you want to still give it a try?</div>
<div class="start-choice-grid">
[[Yeah, I'll take my chances|Character Creation]]
[[Shut up and let me play|Character Creation]]
[[No, exit the game|Game Closed]]
</div>
</div>
</div><div class="start-intro-full warning-intro-full">
<div class="card start-warning-card">
<div class="num">Fair warning</div>
<h1>This game is very grindy</h1>
<p>This game has very little to no story, and lots of grind and stat-building in a sandbox world.</p>
<p class="story-warning-line">This is pretty much the opposite of a game with a good story, you might not like it at all.</p>
<div class="start-question">Are you sure you want to still give it a try?</div>
<div class="start-choice-grid">
[[Yeah, I'll take my chances|Character Creation]]
[[Shut up and let me play|Character Creation]]
[[No, exit the game|Game Closed]]
</div>
</div>
</div><div class="start-intro-full">
<div class="card start-intro-card">
<h1 class="start-title">City of Cravings</h1>
<div class="start-version">Version 0.2</div>
<div class="start-feature-box">
<p>City of Cravings is a very slow burn, stat-heavy adult sandbox. It is not a guided story game: you build a routine, manage stamina, work, train, learn schedules, scout locations, read reactions, and push relationships forward through many small steps.</p>
<p>Most progress comes from repeating days and slowly improving your options. Adult content is gated behind stats, relationship progress, clothing states, location context, patience, and boundaries. There is very little to no story, so the fun is meant to come from long-term sandbox planning, discovery, and gradual progression.</p>
</div>
<div class="disclaimer"><b>Disclaimer</b><br>By continuing, you confirm that you are of legal age and that you willingly consent to be exposed to explicit pornographic material.</div>
<div class="start-question">Do you like slow burn, grindy simulator games?</div>
<div class="start-choice-grid">
[[Yes, I love grinding stats!|Character Creation]]
[[I'm ok with some grind|Slow Burn Warning - Some Grind]]
[[No, I like games with a story|Slow Burn Warning - Story Preference]]
</div>
</div>
</div><<run setup.CC.init()>>
<<set $cc.view = "stats">>
<<set $cc.passageHint = "Stats">>
<<= setup.CC.view("stats") >><div id="cc-caption">
<<if $cc and setup.CC>>
<<= setup.CC.caption()>>
<</if>>
</div><<run setup.CC.init()>>
<<set $dialogue001ready to 1>>
<<set $dialogue002ready to 1>>
<<set $photo001ready to 1>>
<<set $photo002ready to 1>>
<<set $photo003ready to 1>>
<<set $photo004ready to 1>>
<<set $photo009ready to 1>>/% START_TEXT
{
"intro": [
"City of Cravings is a very slow burn, stat-heavy adult sandbox. It is not a guided story game: you build a routine, manage stamina, work, train, learn schedules, scout locations, read reactions, and push relationships forward through many small steps.",
"Most progress comes from repeating days and slowly improving your options. Adult content is gated behind stats, relationship progress, clothing states, location context, patience, and boundaries. There is very little to no story, so the fun is meant to come from long-term sandbox planning, discovery, and gradual progression."
],
"disclaimer": "By continuing, you confirm that you are of legal age and that you willingly consent to be exposed to explicit pornographic material."
}
END_START_TEXT %//% DATA_ACTIONS
[
{
"id": "introduce",
"label": "Friendly introduction",
"tab": "Talk",
"setting": "public",
"cost": 3,
"minutes": 2,
"base": 100,
"limit": 1,
"pref": null,
"tags": [
"safe",
"social",
"intro",
"friendly"
],
"unique": "introduced",
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"charm"
],
"requiresFlags": [],
"setsFlag": "introduced",
"minStats": {},
"desc": "Always succeeds. First contact shaped by Charm, giving Trust and Affection.",
"alwaysSuccess": true,
"relationType": "none"
},
{
"id": "introduce_dominant",
"label": "Dominant introduction",
"tab": "Talk",
"setting": "public",
"cost": 3,
"minutes": 2,
"base": 100,
"limit": 1,
"pref": null,
"tags": [
"safe",
"intro",
"dominant"
],
"unique": "introduced",
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"dominance"
],
"requiresFlags": [],
"setsFlag": "introduced",
"minStats": {},
"alwaysSuccess": true,
"desc": "Always succeeds. First contact shaped by Dominance, giving Obedience and Lust.",
"relationType": "none"
},
{
"id": "talk_cooking",
"label": "Talk about food and cooking",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 10,
"base": 80,
"limit": 2,
"pref": null,
"tags": [
"safe",
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "cooking",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Uses Cooking interest, plus your Cooking, Empathy, and Charm skills. Low stamina.",
"skillWeights": {
"cooking": 0.6,
"empathy": 0.25,
"charm": 0.15
},
"relationType": "social",
"skills": [
"cooking",
"empathy",
"charm"
]
},
{
"id": "talk_sports",
"label": "Talk about sports and fitness",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 10,
"base": 80,
"limit": 2,
"pref": null,
"tags": [
"safe",
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "sports",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Uses Sports interest. Low stamina.",
"skillWeights": {
"sports": 0.55,
"fitness": 0.25,
"charm": 0.2
},
"relationType": "social",
"skills": [
"sports",
"fitness",
"charm"
]
},
{
"id": "talk_computers",
"label": "Talk about computers",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 10,
"base": 78,
"limit": 2,
"pref": null,
"tags": [
"safe",
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "informatic",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Uses Informatic interest, plus your Informatic, Intelligence, and Focus skills. Low stamina.",
"skillWeights": {
"informatic": 0.6,
"intelligence": 0.25,
"focus": 0.15
},
"relationType": "social",
"skills": [
"informatic",
"intelligence",
"focus"
]
},
{
"id": "talk_finance",
"label": "Talk about money and ambition",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 10,
"base": 76,
"limit": 2,
"pref": null,
"tags": [
"safe",
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "finance",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Uses Finance interest, plus your Finance, Intelligence, and Focus skills. Low stamina.",
"skillWeights": {
"finance": 0.6,
"intelligence": 0.25,
"focus": 0.15
},
"relationType": "social",
"skills": [
"finance",
"intelligence",
"focus"
]
},
{
"id": "talk_art",
"label": "Talk about art and taste",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 10,
"base": 80,
"limit": 2,
"pref": null,
"tags": [
"safe",
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "art",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Uses Art interest, plus your Art, Charm, and Empathy skills. Low stamina.",
"skillWeights": {
"art": 0.55,
"charm": 0.25,
"empathy": 0.2
},
"relationType": "social",
"skills": [
"art",
"charm",
"empathy"
]
},
{
"id": "talk_photography",
"label": "Talk about photography",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 10,
"base": 78,
"limit": 2,
"pref": null,
"tags": [
"safe",
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Uses Photography interest, plus your Photography, Art, Focus, and Empathy skills. Low stamina.",
"skillWeights": {
"photography": 0.55,
"art": 0.2,
"focus": 0.15,
"empathy": 0.1
},
"relationType": "social",
"skills": [
"photography",
"art",
"focus",
"empathy"
]
},
{
"id": "talk_massage",
"label": "Talk about massage and relaxation",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 10,
"base": 74,
"limit": 2,
"pref": "massage",
"tags": [
"safe",
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Uses her Massage preference, plus your Massage, Empathy, and Touching skills. Low stamina.",
"skillWeights": {
"massage": 0.55,
"empathy": 0.25,
"touching": 0.2
},
"relationType": "social",
"skills": [
"massage",
"empathy",
"touching"
]
},
{
"id": "talk_music",
"label": "Talk about music",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 10,
"base": 80,
"limit": 2,
"pref": null,
"tags": [
"safe",
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "music",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Uses Music interest, plus your Music, Empathy, and Charm skills. Low stamina.",
"skillWeights": {
"music": 0.6,
"empathy": 0.25,
"charm": 0.15
},
"relationType": "social",
"skills": [
"music",
"empathy",
"charm"
]
},
{
"id": "invite_coffee",
"label": "Invite her for coffee",
"tab": "Talk",
"setting": "public",
"cost": 3,
"minutes": 5,
"base": 44,
"limit": 1,
"pref": null,
"tags": [
"date"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"charm",
"empathy"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Costs 3 stamina to ask. If accepted, spends 3 more stamina, takes about 90 minutes, moves both of you to Cafe Row, and gives small social skill gains.",
"activityLocation": "loc6",
"activityMinutes": 90,
"activitySuccessCost": 3,
"activitySkillGains": {
"charm": 0.1,
"empathy": 0.08,
"hustle": 0.04
},
"activityStatGains": {
"trust": 0.16,
"affection": 0.18,
"knowledge": 0.08
},
"relationType": "social"
},
{
"id": "invite_workout",
"label": "Invite her to train together",
"tab": "Talk",
"setting": "public",
"cost": 3,
"minutes": 5,
"base": 40,
"limit": 1,
"pref": null,
"tags": [
"date"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "sports",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Costs 3 stamina to ask. If accepted, spends 9 more stamina, takes about 2 hours, moves both of you to the Gym, and gives fitness and sports gains.",
"activityLocation": "loc1",
"activityMinutes": 120,
"activitySuccessCost": 9,
"activitySkillGains": {
"fitness": 0.18,
"sports": 0.16,
"charm": 0.05
},
"activityStatGains": {
"trust": 0.13,
"affection": 0.1,
"lust": 0.09,
"knowledge": 0.05
},
"skillWeights": {
"fitness": 0.45,
"sports": 0.25,
"charm": 0.2,
"empathy": 0.1
},
"relationType": "social",
"skills": [
"fitness",
"sports",
"charm",
"empathy"
]
},
{
"id": "invite_gallery",
"label": "Invite her to a gallery walk",
"tab": "Talk",
"setting": "public",
"cost": 3,
"minutes": 5,
"base": 40,
"limit": 1,
"pref": null,
"tags": [
"date"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "art",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Costs 3 stamina to ask. If accepted, spends 6 more stamina, takes about 2 hours, moves both of you to the Art Studio, and gives art and photography gains.",
"activityLocation": "loc11",
"activityMinutes": 120,
"activitySuccessCost": 6,
"activitySkillGains": {
"art": 0.16,
"photography": 0.12,
"empathy": 0.08,
"charm": 0.04
},
"activityStatGains": {
"trust": 0.12,
"affection": 0.18,
"knowledge": 0.12
},
"skillWeights": {
"art": 0.45,
"photography": 0.25,
"charm": 0.2,
"empathy": 0.1
},
"relationType": "social",
"skills": [
"art",
"photography",
"charm",
"empathy"
]
},
{
"id": "invite_room",
"label": "Invite her to your home",
"tab": "Talk",
"setting": "public",
"cost": 3,
"minutes": 5,
"base": 32,
"limit": 1,
"pref": null,
"tags": [
"private"
],
"unique": null,
"movePrivate": true,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "homeInvited",
"minStats": {},
"desc": "Harder global home invite. Uses Lust, and whichever is higher between Trust and Obedience. Home upgrades can improve all home invite routes.",
"skillWeights": {
"charm": 0.45,
"empathy": 0.35,
"focus": 0.2
},
"relationType": "social",
"skills": [
"charm",
"empathy",
"focus"
]
},
{
"id": "invite_private_movie",
"label": "Invite her home for a private movie",
"tab": "Talk",
"setting": "public",
"cost": 3,
"minutes": 5,
"base": 37,
"limit": 1,
"pref": null,
"tags": [
"private",
"social",
"date"
],
"unique": null,
"movePrivate": true,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "homeInvited",
"minStats": {},
"desc": "Requires a TV set. Costs 3 stamina to ask. If accepted, spends 6 more stamina, takes about 2 hours, relocates both of you to Your home, and uses movie/home upgrades.",
"activityMinutes": 120,
"activitySuccessCost": 6,
"activitySkillGains": {
"empathy": 0.13,
"charm": 0.07,
"willpower": 0.04
},
"requiresItem": "tv_set",
"requiresItemLabel": "TV set",
"skillWeights": {
"charm": 0.45,
"empathy": 0.35,
"focus": 0.2
},
"relationType": "social",
"skills": [
"charm",
"empathy",
"focus"
]
},
{
"id": "invite_meal",
"label": "Invite her for a meal",
"tab": "Talk",
"setting": "public",
"cost": 3,
"minutes": 5,
"base": 33,
"limit": 1,
"pref": null,
"tags": [
"private",
"social",
"date",
"meal"
],
"unique": null,
"movePrivate": true,
"needs": {},
"interest": "cooking",
"requiresFlags": [],
"setsFlag": "homeInvited",
"minStats": {},
"requiresItem": "basic_cookware",
"requiresItemLabel": "Basic cookware set",
"requiresConsumable": "fresh_ingredients",
"requiresConsumableLabel": "Fresh ingredients x2",
"requiresConsumableAmount": 2,
"desc": "Requires Basic cookware and 2 Fresh ingredients. Available 10:00-14:00 or 16:00-21:00. Uses Cooking heavily, plus Trust, Affection, Obedience, and her Cooking interest. If accepted, consumes the ingredients, spends 9 more stamina, takes about 2 hours, and moves both of you to Your home.",
"activityMinutes": 120,
"activitySuccessCost": 9,
"activitySkillGains": {
"cooking": 0.18,
"charm": 0.04
},
"activityStatGains": {
"trust": 0.16,
"affection": 0.12,
"obedience": 0.05
},
"skillWeights": {
"cooking": 0.5,
"charm": 0.25,
"empathy": 0.25
},
"relationType": "social",
"skills": [
"cooking",
"charm",
"empathy"
]
},
{
"id": "invite_photoshoot",
"label": "Invite for a photoshoot",
"tab": "Talk",
"setting": "public",
"cost": 2,
"minutes": 5,
"base": 30,
"limit": 1,
"pref": null,
"tags": [
"social",
"date",
"photoshoot"
],
"unique": null,
"movePrivate": true,
"publicOnly": true,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": "homeInvited",
"startsPhotoshoot": true,
"minStats": {},
"desc": "Requires a camera. Costs 2 stamina to ask. If accepted, spends 3 more stamina, takes 30 minutes, and starts a photoshoot at Your home.",
"activityMinutes": 30,
"activitySuccessCost": 3,
"skillWeights": {
"photography": 0.5,
"art": 0.2,
"charm": 0.15,
"empathy": 0.15
},
"relationType": "social",
"skills": [
"photography",
"art",
"charm",
"empathy"
]
},
{
"id": "say_goodbye",
"label": "End interaction",
"tab": "Talk",
"setting": "any",
"cost": 0,
"minutes": 0,
"base": 100,
"limit": 99,
"pref": null,
"tags": [
"utility"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Leave the encounter.",
"relationType": "none"
},
{
"id": "compliment_style",
"label": "Compliment her style",
"tab": "Flirt",
"setting": "any",
"cost": 1,
"minutes": 1,
"base": 72,
"limit": 2,
"pref": null,
"tags": [
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"charm",
"art",
"empathy"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "A low-risk style compliment. Uses Charm first, with Art and Empathy as support. Does not change arousal.",
"relationType": "social",
"skillWeights": {
"charm": 0.55,
"art": 0.25,
"empathy": 0.2
},
"noHeat": true
},
{
"id": "look_eyes",
"label": "Hold eye contact",
"tab": "Flirt",
"setting": "any",
"cost": 1,
"minutes": 1,
"base": 62,
"limit": 1,
"pref": null,
"tags": [
"gaze",
"heat",
"arousal"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"willpower",
"focus",
"teasing"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Hold her gaze with composure. Uses Willpower first, with Focus and Teasing as support. Adds very light arousal on success.",
"skillWeights": {
"willpower": 0.6,
"focus": 0.2,
"teasing": 0.2
},
"relationType": "social"
},
{
"id": "admire_outfit",
"label": "Admire her outfit openly",
"tab": "Flirt",
"setting": "any",
"cost": 1,
"minutes": 1,
"base": 76,
"limit": 1,
"pref": null,
"tags": [
"gaze",
"heat",
"arousal"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "A controlled visual compliment. Uses Art, Photography, Charm, and Focus. Adds very light arousal on success.",
"skillWeights": {
"art": 0.35,
"photography": 0.25,
"charm": 0.25,
"focus": 0.15
},
"relationType": "social",
"skills": [
"art",
"photography",
"charm",
"focus"
]
},
{
"id": "gaze_chest",
"label": "Look at her chest",
"tab": "Flirt",
"setting": "any",
"cost": 1,
"minutes": 1,
"base": 50,
"limit": 1,
"tags": [
"gaze",
"pervy",
"heat",
"arousal"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Focus-led gaze action with Teasing and Willpower support. Keeps its body preference check and gets easier when her chest is less covered. Adds light arousal on success.",
"skillWeights": {
"focus": 0.45,
"teasing": 0.35,
"willpower": 0.2
},
"prefWeights": {
"breast_sensitivity": 0.8,
"exhibitionism": 0.2
},
"relationType": "social",
"skills": [
"focus",
"teasing",
"willpower"
]
},
{
"id": "gaze_legs",
"label": "Look at her legs",
"tab": "Flirt",
"setting": "any",
"cost": 1,
"minutes": 1,
"base": 54,
"limit": 1,
"tags": [
"gaze",
"pervy",
"heat",
"arousal"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Focus-led gaze action with Teasing and Willpower support. Keeps its body preference check and gets easier when her legs are uncovered. Adds light arousal on success.",
"skillWeights": {
"focus": 0.45,
"teasing": 0.35,
"willpower": 0.2
},
"prefWeights": {
"legs_sensitivity": 0.8,
"exhibitionism": 0.2
},
"relationType": "social",
"skills": [
"focus",
"teasing",
"willpower"
]
},
{
"id": "gaze_ass",
"label": "Look at her ass",
"tab": "Flirt",
"setting": "any",
"cost": 1,
"minutes": 1,
"base": 48,
"limit": 1,
"tags": [
"gaze",
"pervy",
"heat",
"arousal"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skillWeights": {
"focus": 0.45,
"teasing": 0.35,
"willpower": 0.2
},
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Riskier body gaze. Uses Ass sensitivity, with Focus as the main skill and Teasing/Willpower support. Gets easier when her ass is less covered. Adds light arousal on success.",
"prefWeights": {
"ass_sensitivity": 0.8,
"exhibitionism": 0.2
},
"relationType": "social",
"skills": [
"focus",
"teasing",
"willpower"
]
},
{
"id": "flirt_soft",
"label": "Light flirt",
"tab": "Flirt",
"setting": "any",
"cost": 1,
"minutes": 1,
"base": 66,
"limit": 3,
"pref": null,
"tags": [
"flirt",
"heat",
"arousal"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"charm",
"empathy",
"teasing"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Low-risk flirt. Uses Charm first, with Empathy and Teasing as support. Adds light arousal on success.",
"dailyGroup": "flirt_tease",
"groupLimit": 3,
"relationType": "social",
"skillWeights": {
"charm": 0.55,
"empathy": 0.25,
"teasing": 0.2
}
},
{
"id": "flirt_bold",
"label": "Bold flirt",
"tab": "Flirt",
"setting": "any",
"cost": 2,
"minutes": 1,
"base": 53,
"limit": 3,
"pref": null,
"tags": [
"flirt",
"arousal",
"risky",
"heat"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"charm",
"willpower"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "A bolder flirt. Raises a little arousal on success. Shares the flirt and teasing daily pool.",
"dailyGroup": "flirt_tease",
"groupLimit": 3,
"relationType": "social"
},
{
"id": "tease_words",
"label": "Suggestive teasing",
"tab": "Flirt",
"setting": "any",
"cost": 2,
"minutes": 1,
"base": 42,
"limit": 3,
"pref": null,
"tags": [
"flirt",
"arousal",
"pervy",
"risky",
"heat"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"charm",
"teasing"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Suggestive verbal teasing. Riskier and more arousing than light flirt, but no hidden cap or low-assertiveness bonus.",
"dailyGroup": "flirt_tease",
"groupLimit": 3,
"relationType": "social"
},
{
"id": "whisper_dirty",
"label": "Whisper something dirty",
"tab": "Flirt",
"setting": "any",
"cost": 2,
"minutes": 1,
"base": 44,
"limit": 1,
"pref": null,
"tags": [
"flirt",
"pervy",
"risky",
"heat",
"arousal"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"charm",
"teasing",
"willpower"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "A risky dirty whisper. More arousing than a normal flirt, but still below direct touch or petting. Shares the 3/day flirt pool.",
"dailyGroup": "flirt_tease",
"groupLimit": 3,
"relationType": "social"
},
{
"id": "touch_hand",
"label": "Touch her hand",
"tab": "Touch",
"setting": "any",
"cost": 1,
"minutes": 1,
"base": 86,
"limit": 2,
"pref": "touching",
"tags": [
"touch"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"touching",
"empathy"
],
"requiresFlags": [],
"setsFlag": "handTouched",
"minStats": {},
"desc": "Basic physical contact. Low stamina, builds little or capped arousal.",
"relationType": "social"
},
{
"id": "touch_arm",
"label": "Touch her arm",
"tab": "Touch",
"setting": "any",
"cost": 2,
"minutes": 1,
"base": 72,
"limit": 2,
"pref": "touching",
"tags": [
"touch"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"touching",
"empathy"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Basic physical contact. Low stamina, builds little or capped arousal.",
"relationType": "social"
},
{
"id": "hug_her",
"label": "Hug her",
"tab": "Touch",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 47,
"limit": 2,
"pref": "touching",
"tags": [
"touch"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"touching",
"empathy"
],
"requiresFlags": [],
"setsFlag": "hugged",
"minStats": {},
"desc": "Requires introduction. Low stamina, builds little or capped arousal. Soft-gated by current stats instead of prerequisite flags.",
"relationType": "social"
},
{
"id": "start_photoshoot",
"label": "Propose a Photoshoot",
"tab": "Touch",
"setting": "private",
"cost": 2,
"minutes": 3,
"base": 30,
"limit": 1,
"pref": null,
"tags": [
"social",
"photoshoot",
"private"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"startsPhotoshoot": true,
"desc": "Requires a camera and a private encounter. If she agrees, starts a photoshoot without ending the current encounter.",
"skillWeights": {
"photography": 0.5,
"art": 0.2,
"charm": 0.15,
"empathy": 0.15
},
"relationType": "social",
"skills": [
"photography",
"art",
"charm",
"empathy"
],
"noHeat": true
},
{
"id": "massage_start",
"label": "Offer a massage",
"tab": "Touch",
"setting": "private",
"cost": 5,
"minutes": 5,
"base": 37,
"limit": 2,
"pref": "massage",
"tags": [
"massage",
"private",
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"massage",
"empathy"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"startsMassage": true,
"desc": "Starts massage mode if she accepts. Follow-up massage actions appear in the massage continuation panel.",
"relationType": "social"
},
{
"id": "use_massage_oil",
"label": "Use massage oil",
"tab": "MassageFlow",
"setting": "private",
"cost": 0,
"minutes": 1,
"base": 100,
"limit": 99,
"pref": "massage",
"tags": [
"massage",
"private",
"utility",
"item"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"desc": "Consumes one Massage oil. Once per massage section. Treats your Massage skill as 10 points higher until the massage ends.",
"relationType": "none"
},
{
"id": "stop_massage",
"label": "Stop the massage",
"tab": "MassageFlow",
"setting": "private",
"cost": 0,
"minutes": 1,
"base": 100,
"limit": 99,
"pref": "massage",
"tags": [
"massage",
"private",
"utility"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"endsMassage": true,
"alwaysSuccess": true,
"noHeat": true,
"desc": "Ends the active massage without escalating or treating it as a refusal.",
"relationType": "none"
},
{
"id": "photo_full_body",
"label": "Take a full-body portrait",
"tab": "Photoshoot",
"setting": "private",
"cost": 2,
"minutes": 2,
"base": 67,
"limit": 3,
"pref": "exhibitionism",
"tags": [
"photoshoot",
"touch"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresPhotoshoot": true,
"photoHeatBase": 0.6,
"photoHeatCap": 20,
"prefWeights": {
"exhibitionism": 1.0
},
"skillWeights": {
"photography": 0.72,
"art": 0.2,
"charm": 0.05,
"empathy": 0.03
},
"relationType": "social",
"skills": [
"photography",
"art",
"charm",
"empathy"
]
},
{
"id": "photo_breasts",
"label": "Take a breast-focused shot",
"tab": "Photoshoot",
"setting": "private",
"cost": 2,
"minutes": 2,
"base": 45,
"limit": 2,
"pref": "breast_sensitivity",
"tags": [
"photoshoot",
"touch",
"pervy"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresPhotoshoot": true,
"photoHeatBase": 1.8,
"photoHeatCap": 25,
"prefWeights": {
"breast_sensitivity": 0.85,
"exhibitionism": 0.15
},
"skillWeights": {
"photography": 0.7,
"art": 0.2,
"charm": 0.05,
"empathy": 0.05
},
"relationType": "social",
"skills": [
"photography",
"art",
"charm",
"empathy"
]
},
{
"id": "photo_legs",
"label": "Take a leg-focused shot",
"tab": "Photoshoot",
"setting": "private",
"cost": 2,
"minutes": 2,
"base": 46,
"limit": 2,
"pref": "legs_sensitivity",
"tags": [
"photoshoot",
"touch",
"pervy"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresPhotoshoot": true,
"photoHeatBase": 1.6,
"photoHeatCap": 25,
"prefWeights": {
"legs_sensitivity": 0.9,
"exhibitionism": 0.1
},
"skillWeights": {
"photography": 0.7,
"art": 0.2,
"charm": 0.05,
"empathy": 0.05
},
"relationType": "social",
"skills": [
"photography",
"art",
"charm",
"empathy"
]
},
{
"id": "photo_ass",
"label": "Take an ass-focused shot",
"tab": "Photoshoot",
"setting": "private",
"cost": 2,
"minutes": 2,
"base": 43,
"limit": 2,
"pref": "ass_sensitivity",
"tags": [
"photoshoot",
"touch",
"pervy",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresPhotoshoot": true,
"photoHeatBase": 2.2,
"photoHeatCap": 28,
"prefWeights": {
"ass_sensitivity": 0.8,
"exhibitionism": 0.2
},
"skillWeights": {
"photography": 0.7,
"art": 0.18,
"charm": 0.07,
"empathy": 0.05
},
"relationType": "social",
"skills": [
"photography",
"art",
"charm",
"empathy"
]
},
{
"id": "photo_explicit_nude",
"label": "Take an explicit nude shot",
"tab": "Photoshoot",
"setting": "private",
"cost": 3,
"minutes": 3,
"base": 34,
"limit": 2,
"pref": "vaginal_sensitivity",
"tags": [
"photoshoot",
"touch",
"pervy",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresPhotoshoot": true,
"requiresNaked": true,
"photoHeatBase": 4.8,
"photoHeatCap": 40,
"prefWeights": {
"vaginal_sensitivity": 0.55,
"breast_sensitivity": 0.15,
"legs_sensitivity": 0.1,
"exhibitionism": 0.2
},
"skillWeights": {
"photography": 0.68,
"art": 0.2,
"charm": 0.07,
"empathy": 0.05
},
"relationType": "social",
"skills": [
"photography",
"art",
"charm",
"empathy"
]
},
{
"id": "photo_adjust_pose",
"label": "Adjust her pose by hand",
"tab": "Photoshoot",
"setting": "private",
"cost": 2,
"minutes": 2,
"base": 45,
"limit": 3,
"pref": "exhibitionism",
"tags": [
"photoshoot",
"command",
"control",
"touch",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresPhotoshoot": true,
"photoHeatBase": 1.0,
"photoHeatCap": 25,
"prefWeights": {
"exhibitionism": 1.0
},
"skillWeights": {
"dominance": 0.35,
"photography": 0.35,
"art": 0.15,
"touching": 0.1,
"empathy": 0.05
},
"relationType": "command",
"skills": [
"dominance",
"photography",
"art",
"touching",
"empathy"
]
},
{
"id": "photo_place_hand_between_legs",
"label": "Place a hand between her legs",
"tab": "Photoshoot",
"setting": "private",
"cost": 3,
"minutes": 3,
"base": 27,
"limit": 2,
"pref": "fingering",
"tags": [
"photoshoot",
"petting",
"touch",
"private",
"sexual",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": "photography",
"requiresFlags": [],
"setsFlag": "fingered",
"minStats": {},
"requiresPhotoshoot": true,
"requiresClothing": [
"pantiesOff"
],
"startsSexualState": "fingering",
"stateDetail": "fingering",
"photoHeatBase": 11.0,
"photoHeatCap": 100,
"prefWeights": {
"fingering": 0.6,
"vaginal_sensitivity": 0.4
},
"skillWeights": {
"touching": 0.45,
"photography": 0.25,
"empathy": 0.15,
"teasing": 0.15
},
"relationType": "sexual",
"skills": [
"touching",
"photography",
"empathy",
"teasing"
]
},
{
"id": "stop_photoshoot",
"label": "End the photoshoot",
"tab": "Photoshoot",
"setting": "private",
"cost": 0,
"minutes": 1,
"base": 100,
"limit": 99,
"pref": null,
"tags": [
"photoshoot",
"utility"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresPhotoshoot": true,
"endsPhotoshoot": true,
"alwaysSuccess": true,
"noHeat": true,
"desc": "Ends the active photoshoot without ending the encounter.",
"relationType": "none",
"skills": []
},
{
"id": "massage_shoulders",
"label": "Massage her shoulders",
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 5,
"base": 50,
"limit": 2,
"pref": "massage",
"tags": [
"massage",
"private",
"touch"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "massaged",
"minStats": {},
"desc": "A safe massage zone. Requires an active massage.",
"requiresMassage": true,
"skillWeights": {
"massage": 0.6,
"empathy": 0.25,
"focus": 0.15
},
"relationType": "social",
"skills": [
"massage",
"empathy",
"focus"
]
},
{
"id": "massage_neck",
"label": "Massage her neck",
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 5,
"base": 46,
"limit": 3,
"pref": "massage",
"tags": [
"massage",
"private",
"touch"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"desc": "Gentle massage while massage mode is active.",
"skillWeights": {
"massage": 0.6,
"empathy": 0.25,
"focus": 0.15
},
"relationType": "social",
"skills": [
"massage",
"empathy",
"focus"
]
},
{
"id": "massage_back",
"label": "Massage her back",
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 5,
"base": 44,
"limit": 3,
"pref": "massage",
"tags": [
"massage",
"private",
"touch"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"desc": "A longer massage action. Builds comfort and a little arousal.",
"skillWeights": {
"massage": 0.6,
"empathy": 0.25,
"focus": 0.15
},
"relationType": "social",
"skills": [
"massage",
"empathy",
"focus"
]
},
{
"id": "massage_lower_back",
"label": "Massage her lower back",
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 5,
"base": 35,
"limit": 2,
"pref": "massage",
"tags": [
"massage",
"private",
"touch",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"desc": "More suggestive massage zone. Preference and arousal matter.",
"skillWeights": {
"massage": 0.65,
"touching": 0.1,
"empathy": 0.25
},
"relationType": "social",
"skills": [
"massage",
"touching",
"empathy"
]
},
{
"id": "massage_breasts",
"label": "Massage her breasts",
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 31,
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky"
],
"requiresMassage": true,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"limit": 2,
"desc": "Aroused massage zone. Requires an active massage. Raises arousal, lust and affection on success.",
"prefWeights": {
"massage": 0.5,
"breast_sensitivity": 0.5
},
"skillWeights": {
"massage": 0.6,
"touching": 0.2,
"teasing": 0.2
},
"relationType": "social",
"skills": [
"massage",
"touching",
"teasing"
]
},
{
"id": "massage_ass",
"label": "Massage her ass cheeks",
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 32,
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky"
],
"requiresMassage": true,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"limit": 2,
"desc": "Aroused massage zone. Requires an active massage. Raises arousal, lust and affection on success.",
"prefWeights": {
"massage": 0.5,
"ass_sensitivity": 0.5
},
"skillWeights": {
"massage": 0.6,
"touching": 0.2,
"teasing": 0.2
},
"relationType": "social",
"skills": [
"massage",
"touching",
"teasing"
]
},
{
"id": "massage_legs",
"label": "Massage her legs",
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 5,
"base": 41,
"limit": 2,
"tags": [
"massage",
"private",
"touch"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"massage",
"touching",
"empathy"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"desc": "Massage her legs without immediately escalating.",
"prefWeights": {
"massage": 0.5,
"legs_sensitivity": 0.5
},
"relationType": "social"
},
{
"id": "massage_inner_thighs",
"label": "Massage her inner thighs",
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 30,
"limit": 2,
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"desc": "Borderline massage zone. Failure mainly raises discomfort unless the scene is already pushed too far.",
"prefWeights": {
"legs_sensitivity": 0.4,
"vaginal_sensitivity": 0.2,
"massage": 0.4
},
"skillWeights": {
"massage": 0.55,
"touching": 0.15,
"teasing": 0.3
},
"relationType": "social",
"skills": [
"massage",
"touching",
"teasing"
]
},
{
"id": "massage_vagina",
"label": "Rub her vagina as part of the massage",
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 21,
"limit": 99,
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"requiresClothing": [
"pantiesOff"
],
"desc": "Massage escalation focused on rubbing her vagina. Requires panties off. Raises arousal less than fingering. At 100 arousal, a successful action can trigger an orgasm while leaving the massage active.",
"prefWeights": {
"touching": 0.4,
"fingering": 0.2,
"vaginal_sensitivity": 0.4
},
"skillWeights": {
"massage": 0.5,
"touching": 0.2,
"teasing": 0.3
},
"relationType": "sexual",
"skills": [
"massage",
"touching",
"teasing"
]
},
{
"tab": "MassageFlow",
"setting": "private",
"cost": 4,
"minutes": 3,
"limit": 99,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"id": "massage_pussy_fabric",
"label": "Massage her pussy through clothes",
"base": 27,
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky",
"fabric"
],
"requiresLayerOn": "lower",
"desc": "Heated massage escalation through clothing. Requires fabric still covering her. Arousal makes it easier. On success the massage continues; refusal can still break the mood.",
"prefWeights": {
"touching": 0.5,
"vaginal_sensitivity": 0.5
},
"skillWeights": {
"massage": 0.5,
"touching": 0.2,
"teasing": 0.3
},
"relationType": "sexual",
"skills": [
"massage",
"touching",
"teasing"
]
},
{
"tab": "MassageFlow",
"setting": "private",
"cost": 4,
"minutes": 3,
"limit": 99,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"endsMassage": true,
"id": "massage_pussy_bare",
"label": "Massage her bare pussy",
"base": 25,
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky"
],
"requiresClothing": [
"pantiesOff"
],
"desc": "Final arousaled massage escalation. Requires panties off. Arousal makes it easier. Ends massage either way.",
"startsSexualState": "fingering",
"stateDetail": "fingering",
"prefWeights": {
"touching": 0.4,
"fingering": 0.2,
"vaginal_sensitivity": 0.4
},
"skillWeights": {
"massage": 0.5,
"touching": 0.2,
"teasing": 0.3
},
"relationType": "sexual",
"skills": [
"massage",
"touching",
"teasing"
]
},
{
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 3,
"limit": 99,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"endsMassage": true,
"id": "massage_tongue_ass",
"label": "Surprise her with your tongue on her asshole",
"base": 12,
"tags": [
"massage",
"private",
"touch",
"sexual",
"oral",
"anal",
"analingus",
"risky"
],
"requiresClothing": [
"bottomOff",
"pantiesOff"
],
"desc": "A difficult final massage escalation. Requires lower layers off, ends the massage on success or refusal, and starts Analingus instead of anal sex.",
"startsSexualState": "analingus",
"stateDetail": "analingus",
"prefWeights": {
"anal_sensitivity": 0.5,
"receiving_oral": 0.5
},
"skillWeights": {
"oral": 0.5,
"teasing": 0.111111,
"empathy": 0.166667,
"focus": 0.222222
},
"relationType": "sexual",
"skills": [
"oral",
"teasing",
"empathy",
"focus"
]
},
{
"tab": "MassageFlow",
"setting": "private",
"cost": 6,
"minutes": 3,
"limit": 99,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"requiresMassage": true,
"endsMassage": true,
"id": "massage_tongue_pussy",
"label": "Surprise her with your tongue on her pussy",
"base": 13,
"tags": [
"massage",
"private",
"touch",
"sexual",
"oral",
"risky"
],
"requiresClothing": [
"pantiesOff"
],
"desc": "A very difficult final massage escalation. Requires panties off, ends the massage on success or refusal, and relies heavily on arousal, oral skill and her preferences.",
"startsSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"skillWeights": {
"oral": 0.9,
"focus": 0.1
},
"relationType": "sexual",
"skills": [
"oral",
"focus"
]
},
{
"id": "kiss_cheek",
"label": "Kiss her cheek",
"tab": "Touch",
"setting": "any",
"cost": 2,
"minutes": 1,
"base": 53,
"limit": 2,
"pref": "kissing",
"tags": [
"kiss",
"heat",
"arousal"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "cheekKissed",
"minStats": {},
"desc": "A light kiss. Low stamina, builds small arousal, and stays softly capped by her kissing preference and current relationship.",
"skillWeights": {
"kissing": 0.6,
"empathy": 0.25,
"teasing": 0.15
},
"relationType": "social",
"skills": [
"kissing",
"empathy",
"teasing"
]
},
{
"id": "kiss_lips",
"label": "Kiss her lips",
"tab": "Touch",
"setting": "any",
"cost": 2,
"minutes": 1,
"base": 29,
"limit": 2,
"pref": "kissing",
"tags": [
"kiss",
"risky",
"heat",
"arousal"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "kissed",
"minStats": {},
"desc": "A real kiss on the lips. Builds modest arousal on success and stays gated by her kissing preference, relationship, and current mood.",
"skillWeights": {
"kissing": 0.6,
"empathy": 0.25,
"teasing": 0.15
},
"relationType": "social",
"skills": [
"kissing",
"empathy",
"teasing"
]
},
{
"id": "deep_kiss",
"label": "Deep kiss",
"tab": "Touch",
"setting": "any",
"cost": 6,
"minutes": 2,
"base": 22,
"limit": 2,
"pref": "kissing",
"tags": [
"kiss",
"risky",
"heat",
"arousal"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "deepKissed",
"minStats": {},
"desc": "A deeper kiss. Costs more stamina, builds stronger arousal on success, and remains riskier in public or with low trust.",
"skillWeights": {
"kissing": 0.6,
"empathy": 0.25,
"teasing": 0.15
},
"relationType": "social",
"skills": [
"kissing",
"empathy",
"teasing"
]
},
{
"id": "suck_nipples",
"label": "Suck her nipples",
"tab": "Petting",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 31,
"limit": 2,
"tags": [
"oral_light",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "nipplesSucked",
"minStats": {},
"desc": "Nipple teasing by mouth. Requires her bra to be off first. Listed under Petting, not basic Touch. Arousal is capped at 30, or her lust value if higher.",
"requiresClothing": [
"braOff"
],
"prefWeights": {
"breast_sensitivity": 0.8,
"receiving_oral": 0.2
},
"skillWeights": {
"oral": 0.45,
"touching": 0.25,
"teasing": 0.2,
"focus": 0.1
},
"relationType": "social",
"skills": [
"oral",
"touching",
"teasing",
"focus"
]
},
{
"id": "caress_thigh",
"label": "Caress her thigh",
"tab": "Petting",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 49,
"limit": 2,
"tags": [
"petting",
"touch",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "thighCaressed",
"minStats": {},
"desc": "Suggestive caressing. Easier than explicit sex, harder than ordinary touching. Available in public, but harder because of exposure.",
"prefWeights": {
"legs_sensitivity": 0.8,
"touching": 0.2
},
"skillWeights": {
"touching": 0.55,
"teasing": 0.3,
"massage": 0.15
},
"relationType": "social",
"skills": [
"touching",
"teasing",
"massage"
]
},
{
"id": "pet_over_clothes",
"label": "Caress her through her clothes",
"tab": "Petting",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 47,
"limit": 4,
"pref": "touching",
"tags": [
"petting",
"touch",
"sexual",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Suggestive caressing through clothing. Uses Touching plus Teasing, with lust handled by the normal chance formula. Only available while at least one clothing layer is still on. Available in public, but harder because of exposure.",
"requiresLayerOn": "any",
"skillWeights": {
"touching": 0.7,
"teasing": 0.3
},
"relationType": "social",
"skills": [
"touching",
"teasing"
]
},
{
"id": "rub_breasts_fabric",
"label": "Rub her tits through her clothes",
"tab": "Petting",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 46,
"limit": 2,
"tags": [
"petting",
"touch",
"sexual",
"fabric"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Rub her tits through her top or bra. Only available while something still covers her chest. Available in public, but harder because of exposure.",
"requiresClothing": [],
"requiresLayerOn": "upper",
"prefWeights": {
"breast_sensitivity": 0.8,
"touching": 0.2
},
"skillWeights": {
"touching": 0.5,
"teasing": 0.35,
"massage": 0.15
},
"relationType": "social",
"skills": [
"touching",
"teasing",
"massage"
]
},
{
"id": "rub_ass_clothes",
"label": "Rub her ass through her clothes",
"tab": "Petting",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 46,
"limit": 2,
"tags": [
"petting",
"touch",
"sexual",
"fabric"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Rub her ass through her clothes. Only available while something still covers her lower body. Available in public, but harder because of exposure.",
"requiresLayerOn": "lower",
"prefWeights": {
"ass_sensitivity": 0.8,
"touching": 0.2
},
"skillWeights": {
"touching": 0.5,
"teasing": 0.35,
"massage": 0.15
},
"relationType": "social",
"skills": [
"touching",
"teasing",
"massage"
]
},
{
"id": "rub_pussy_fabric",
"label": "Rub her pussy through fabric",
"tab": "Petting",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 31,
"limit": 2,
"tags": [
"petting",
"touch",
"sexual",
"fabric",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Genital rubbing through fabric. Available in public at a larger difficulty penalty; only available while bottoms or panties are still on. On success it starts a rubbing continue-state menu.",
"requiresClothing": [],
"requiresLayerOn": "lower",
"startsSexualState": "rubbing",
"stateDetail": "rubbing",
"heatBase": 8.0,
"prefWeights": {
"touching": 0.5,
"vaginal_sensitivity": 0.5
},
"skillWeights": {
"touching": 0.55,
"teasing": 0.3,
"focus": 0.15
},
"relationType": "sexual",
"skills": [
"touching",
"teasing",
"focus"
]
},
{
"id": "finger_pussy",
"label": "Try to finger her pussy",
"tab": "Petting",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 23,
"limit": 2,
"tags": [
"petting",
"touch",
"private",
"sexual",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "fingered",
"minStats": {},
"desc": "Explicit petting attempt. Easier than full sex, still very intimate. Requires panties off. On success it starts a fingering continue-state menu.",
"requiresClothing": [
"pantiesOff"
],
"startsSexualState": "fingering",
"stateDetail": "fingering",
"prefWeights": {
"fingering": 0.6,
"vaginal_sensitivity": 0.4
},
"skillWeights": {
"touching": 0.6,
"teasing": 0.25,
"focus": 0.15
},
"relationType": "sexual",
"skills": [
"touching",
"teasing",
"focus"
]
},
{
"id": "grind_together",
"label": "Grind against her",
"tab": "Petting",
"setting": "private",
"cost": 7,
"minutes": 3,
"base": 23,
"limit": 3,
"tags": [
"petting",
"private",
"sexual",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Grind your hardon against her slit without penetration. Required setup for trying to slip inside.",
"prefWeights": {
"touching": 0.5,
"vaginal_sensitivity": 0.5
},
"skillWeights": {
"teasing": 0.4,
"touching": 0.2,
"focus": 0.2,
"penetration": 0.2
},
"relationType": "sexual",
"skills": [
"teasing",
"touching",
"focus",
"penetration"
]
},
{
"id": "try_slip_inside",
"label": "Try to slip it inside",
"tab": "Petting",
"setting": "private",
"cost": 9,
"minutes": 2,
"base": 16,
"limit": 1,
"tags": [
"petting",
"private",
"sexual",
"sex",
"risky",
"slip_inside"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "hadSex",
"minStats": {},
"desc": "Only appears immediately after Grind against her, while both of you are naked and no other sexual state is active. On success it starts missionary sex.",
"startsSexualState": "sex",
"stateDetail": "missionary",
"requiresClothing": [
"topOff",
"braOff",
"bottomOff",
"pantiesOff"
],
"requiresPlayerUndressed": true,
"activitySuccessCost": 4,
"prefWeights": {
"touching": 0.5,
"vaginal_sensitivity": 0.5
},
"skillWeights": {
"teasing": 0.4,
"penetration": 0.4,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"teasing",
"penetration",
"focus"
]
},
{
"id": "anal_talk",
"label": "Talk about anal",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 10,
"base": 34,
"limit": 2,
"pref": "anal_sensitivity",
"tags": [
"anal",
"social"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"anal",
"empathy"
],
"requiresFlags": [],
"setsFlag": "analTalk",
"minStats": {},
"desc": "Bring up anal play verbally. Very hard talk option.",
"relationType": "social"
},
{
"id": "finger_ass",
"label": "Finger her ass",
"tab": "Petting",
"setting": "private",
"cost": 7,
"minutes": 3,
"base": 25,
"limit": 2,
"tags": [
"anal",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresClothing": [
"pantiesOff"
],
"setsFlag": "analFinger",
"minStats": {},
"desc": "Start fingering her ass. On success it opens the anal-fingering continuation menu.",
"startsSexualState": "anal_fingering",
"stateDetail": "anal_fingering",
"prefWeights": {
"anal_sensitivity": 0.6,
"fingering": 0.4
},
"skillWeights": {
"anal": 0.5,
"touching": 0.5
},
"relationType": "sexual",
"skills": [
"anal",
"touching"
]
},
{
"id": "cont_anal_finger_keep",
"label": "Keep fingering her ass",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 80,
"limit": 99,
"pref": "anal_sensitivity",
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"touch"
],
"continueState": "anal_fingering",
"nextSexualState": null,
"stateDetail": "anal_fingering",
"heatBase": 10.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"anal",
"touching",
"focus"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue the anal fingering she has already accepted.",
"prefWeights": {
"anal_sensitivity": 0.75,
"fingering": 0.25
},
"skillWeights": {
"anal": 0.5,
"touching": 0.35,
"focus": 0.15
},
"relationType": "sexual"
},
{
"id": "cont_anal_finger_to_fingering",
"label": "Switch to fingering her pussy",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 2,
"base": 72,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"touch",
"state_shift"
],
"continueState": "anal_fingering",
"nextSexualState": "fingering",
"stateDetail": "fingering",
"heatBase": 13.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"touching",
"focus",
"empathy"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Withdraw from her ass and use the other hand to start vaginal fingering.",
"prefWeights": {
"fingering": 0.65,
"vaginal_sensitivity": 0.35
},
"skillWeights": {
"touching": 0.6,
"focus": 0.25,
"empathy": 0.15
},
"relationType": "sexual"
},
{
"id": "cont_anal_finger_to_analingus",
"label": "Move your mouth to her ass",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 50,
"limit": 3,
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"anal",
"analingus",
"risky",
"state_shift"
],
"continueState": "anal_fingering",
"nextSexualState": "analingus",
"stateDetail": "analingus",
"heatBase": 14.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"oral",
"anal",
"empathy",
"focus"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Withdraw your finger and try to continue with analingus.",
"prefWeights": {
"anal_sensitivity": 0.7,
"receiving_oral": 0.3
},
"skillWeights": {
"oral": 0.5,
"anal": 0.25,
"empathy": 0.15,
"focus": 0.1
},
"relationType": "sexual"
},
{
"id": "ask_about_schedule",
"label": "Ask about her schedule",
"tab": "Talk",
"setting": "public",
"cost": 2,
"minutes": 10,
"base": 91,
"limit": 1,
"pref": null,
"tags": [
"safe",
"social",
"knowledge",
"routine"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Harder knowledge action. Gives a much larger Knowledge gain and unlocks schedule clues at thresholds.",
"skillWeights": {
"charm": 0.55,
"empathy": 0.3,
"intelligence": 0.15
},
"relationType": "social",
"skills": [
"charm",
"empathy",
"intelligence"
]
},
{
"id": "inquire_jobs",
"label": "Inquire about jobs",
"tab": "Talk",
"setting": "public",
"cost": 1,
"minutes": 1,
"base": 100,
"limit": 1,
"pref": null,
"tags": [
"safe",
"social",
"ask_info",
"job_lead"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"charm",
"focus"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Ask whether she knows a work opportunity. This does not roll chance; it checks the requirements listed in the Jobs passage.",
"relationType": "social"
},
{
"id": "inquire_training",
"label": "Inquire about training",
"tab": "Talk",
"setting": "public",
"cost": 1,
"minutes": 1,
"base": 100,
"limit": 1,
"pref": null,
"tags": [
"safe",
"social",
"ask_info",
"training_lead"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"focus",
"empathy"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Ask whether she knows a training opportunity. This does not roll chance; it checks the requirements listed in the Jobs passage.",
"relationType": "social"
},
{
"id": "ask_number",
"label": "Ask for her number",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 3,
"base": 50,
"limit": 1,
"pref": null,
"tags": [
"social"
],
"unique": "number",
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"charm",
"empathy"
],
"requiresFlags": [],
"setsFlag": "number",
"minStats": {},
"desc": "Unique. Hidden after success. Makes sense anywhere if you do not have her number yet. Low stamina.",
"relationType": "social"
},
{
"id": "ask_address",
"label": "Ask for her address",
"tab": "Talk",
"setting": "any",
"cost": 3,
"minutes": 5,
"base": 35,
"limit": 1,
"pref": null,
"tags": [
"safe",
"social",
"knowledge",
"address"
],
"unique": "address",
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [
"introduced"
],
"setsFlag": "address",
"minStats": {},
"desc": "A serious one-time ask. Much harder than asking for her number. Failure costs more patience and trust; success unlocks her address.",
"skillWeights": {
"charm": 0.45,
"empathy": 0.25,
"intelligence": 0.2,
"focus": 0.1
},
"relationType": "social",
"skills": [
"charm",
"empathy",
"intelligence",
"focus"
]
},
{
"id": "ask_blowjob",
"label": "Ask for a blowjob",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 19,
"limit": 2,
"pref": "giving_oral",
"tags": [
"receiving_oral",
"private",
"sexual",
"ask_beg",
"permission"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "blowjob",
"minStats": {},
"desc": "Ask for a blowjob. If accepted, you expose yourself and a blowjob Continue state starts.",
"startsSexualState": "blowjob",
"stateDetail": "oral_give",
"playerUndress": true,
"skillWeights": {
"focus": 0.6,
"empathy": 0.4
},
"relationType": "sexual",
"skills": [
"focus",
"empathy"
]
},
{
"id": "ask_handjob",
"label": "Ask for a handjob",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 30,
"limit": 2,
"pref": "handjob",
"tags": [
"handjob",
"private",
"sexual",
"ask_beg",
"permission"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Ask for a handjob. If accepted, you expose yourself and a Handjob Continue state starts.",
"startsSexualState": "handjob",
"stateDetail": "handjob",
"playerUndress": true,
"skillWeights": {
"touching": 0.6,
"focus": 0.25,
"empathy": 0.15
},
"relationType": "sexual",
"skills": [
"touching",
"focus",
"empathy"
]
},
{
"id": "ask_footjob",
"label": "Ask for a footjob",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 32,
"limit": 2,
"tags": [
"footjob",
"private",
"sexual",
"ask_beg",
"permission"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Ask her to use her feet on you. Uses Legs sensitivity. If accepted, you expose yourself and a Footjob Continue state starts.",
"startsSexualState": "footjob",
"stateDetail": "footjob",
"playerUndress": true,
"heatBase": 6.4,
"activitySuccessCost": 2,
"prefWeights": {
"legs_sensitivity": 0.8,
"touching": 0.2
},
"skillWeights": {
"focus": 0.6,
"empathy": 0.4
},
"relationType": "sexual",
"skills": [
"focus",
"empathy"
]
},
{
"id": "ask_titfuck",
"label": "Ask for a titfuck",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 2,
"base": 13,
"limit": 2,
"tags": [
"titfuck",
"breast",
"private",
"sexual",
"ask_beg",
"permission"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skillWeights": {
"focus": 0.45,
"empathy": 0.1,
"penetration": 0.45
},
"requiresFlags": [],
"setsFlag": "titfuck",
"minStats": {},
"desc": "Ask her to press her breasts around your cock. Primarily uses Titfuck preference, with a smaller Breast sensitivity influence. If accepted, her upper layers come off, you expose yourself, and a Titfuck Continue state starts.",
"startsSexualState": "titfuck",
"stateDetail": "titfuck",
"clothingSet": [
"topOff",
"braOff"
],
"playerUndress": true,
"heatBase": 7.4,
"activitySuccessCost": 4,
"prefWeights": {
"breast_sex": 0.7,
"breast_sensitivity": 0.3
},
"extraPrefs": [
"breast_sensitivity"
],
"relationType": "sexual",
"skills": [
"focus",
"empathy",
"penetration"
]
},
{
"id": "ask_permission_finger",
"label": "Ask permission to finger her",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 22,
"limit": 2,
"tags": [
"petting",
"touch",
"private",
"sexual",
"ask_beg",
"permission"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Ask permission before fingering her. If accepted, her lower layers come off and Fingering starts.",
"startsSexualState": "fingering",
"stateDetail": "fingering",
"clothingSet": [
"bottomOff",
"pantiesOff"
],
"activitySuccessCost": 4,
"prefWeights": {
"fingering": 0.6,
"vaginal_sensitivity": 0.4
},
"skillWeights": {
"touching": 0.6,
"teasing": 0.25,
"focus": 0.15
},
"relationType": "sexual",
"skills": [
"touching",
"teasing",
"focus"
]
},
{
"id": "ask_permission_oral",
"label": "Ask to lick her pussy",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 21,
"limit": 2,
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"permission"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Ask to go down on her and lick her pussy. If accepted, her lower layers come off and Cunnilingus starts.",
"startsSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"clothingSet": [
"bottomOff",
"pantiesOff"
],
"activitySuccessCost": 4,
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"skillWeights": {
"oral": 0.9,
"focus": 0.1
},
"relationType": "sexual",
"skills": [
"oral",
"focus"
]
},
{
"id": "ask_sex",
"label": "Ask for sex",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 2,
"base": 12,
"limit": 2,
"pref": "vaginal_sensitivity",
"tags": [
"sex",
"private",
"sexual",
"ask_beg",
"permission"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "hadSex",
"minStats": {},
"desc": "Ask for sex directly. If accepted, both lower layers come off and a Sex Continue state starts.",
"startsSexualState": "sex",
"stateDetail": "missionary",
"clothingSet": [
"bottomOff",
"pantiesOff",
"mutualUndress"
],
"playerUndress": true,
"activitySuccessCost": 4,
"skillWeights": {
"penetration": 0.7,
"empathy": 0.1,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"penetration",
"empathy",
"focus"
]
},
{
"id": "ask_anal_sex",
"label": "Ask for anal sex",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 2,
"base": 5,
"limit": 1,
"pref": "anal_sensitivity",
"tags": [
"anal",
"private",
"sexual",
"ask_beg",
"permission"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "analSex",
"minStats": {},
"desc": "Ask for anal sex directly. If accepted, both lower layers come off and an Anal Continue state starts.",
"startsSexualState": "anal",
"stateDetail": "anal_missionary",
"clothingSet": [
"bottomOff",
"pantiesOff",
"mutualUndress"
],
"playerUndress": true,
"activitySuccessCost": 4,
"skillWeights": {
"anal": 0.7,
"empathy": 0.1,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"anal",
"empathy",
"focus"
]
},
{
"id": "sit_on_face",
"label": "Ask her to sit on your face",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 2,
"base": 16,
"limit": 2,
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"permission"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"oral",
"willpower"
],
"requiresFlags": [],
"setsFlag": "facesat",
"minStats": {},
"desc": "Ask her to sit on your face. If accepted, her lower layers come off and a cunnilingus Continue state starts with her taking the position.",
"startsSexualState": "cunnilingus",
"stateDetail": "facesitting",
"clothingSet": [
"bottomOff",
"pantiesOff"
],
"activitySuccessCost": 7,
"prefWeights": {
"receiving_oral": 0.9,
"vaginal_sensitivity": 0.1
},
"relationType": "sexual"
},
{
"id": "sixty_nine",
"label": "Ask for 69",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 2,
"base": 19,
"limit": 2,
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"permission"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "sixtyNine",
"minStats": {},
"desc": "Ask for mutual oral. If accepted, both lower layers come off and a dedicated 69 Continue state starts.",
"startsSexualState": "sixty_nine",
"clothingSet": [
"bottomOff",
"pantiesOff",
"mutualUndress"
],
"playerUndress": true,
"stateDetail": "sixty_nine",
"heatBase": 14.0,
"activitySuccessCost": 4,
"prefWeights": {
"sixty_nine": 0.6,
"giving_oral": 0.2,
"receiving_oral": 0.2
},
"skillWeights": {
"oral": 0.7,
"empathy": 0.15,
"focus": 0.15
},
"relationType": "sexual",
"skills": [
"oral",
"empathy",
"focus"
]
},
{
"id": "beg_cunnilingus",
"label": "Beg to lick her pussy",
"tab": "Ask-beg",
"setting": "private",
"cost": 5,
"minutes": 1,
"base": 12,
"limit": 2,
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"beg"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "facesat",
"minStats": {},
"desc": "Beg to go down on her and lick her pussy. If accepted, her lower layers come off and the cunnilingus Continue state starts.",
"startsSexualState": "cunnilingus",
"stateDetail": "facesitting",
"clothingSet": [
"bottomOff",
"pantiesOff"
],
"activitySuccessCost": 7,
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"skillWeights": {
"oral": 0.9,
"focus": 0.1
},
"relationType": "sexual",
"skills": [
"oral",
"focus"
]
},
{
"id": "beg_sixty_nine",
"label": "Beg for 69",
"tab": "Ask-beg",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 15,
"limit": 2,
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"beg"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "sixtyNine",
"minStats": {},
"desc": "Beg for mutual oral. This mainly checks 69 preference, affection, lust and low assertiveness, instead of requiring both oral preferences to be high.",
"startsSexualState": "sixty_nine",
"clothingSet": [
"bottomOff",
"pantiesOff",
"mutualUndress"
],
"playerUndress": true,
"stateDetail": "sixty_nine",
"heatBase": 14.0,
"activitySuccessCost": 4,
"prefWeights": {
"sixty_nine": 0.6,
"giving_oral": 0.2,
"receiving_oral": 0.2
},
"skillWeights": {
"oral": 0.7,
"empathy": 0.15,
"focus": 0.15
},
"relationType": "sexual",
"skills": [
"oral",
"empathy",
"focus"
]
},
{
"id": "beg_anal_sex",
"label": "Beg for anal sex",
"tab": "Ask-beg",
"setting": "private",
"cost": 3,
"minutes": 2,
"base": 0,
"limit": 1,
"pref": "anal_sensitivity",
"tags": [
"anal",
"private",
"sexual",
"ask_beg",
"beg"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "analSex",
"minStats": {},
"desc": "Beg for the escalation. Affection, lust and higher assertiveness matter, but your Dominance drops. If it works, both lower layers come off and Anal starts. Begging now needs real affection, lust and the right personality instead of riding arousal alone.",
"startsSexualState": "anal",
"stateDetail": "anal_cowgirl",
"clothingSet": [
"bottomOff",
"pantiesOff",
"mutualUndress"
],
"playerUndress": true,
"activitySuccessCost": 4,
"skillWeights": {
"anal": 0.7,
"empathy": 0.1,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"anal",
"empathy",
"focus"
]
},
{
"id": "beg_sex",
"label": "Beg for sex",
"tab": "Ask-beg",
"setting": "private",
"cost": 3,
"minutes": 2,
"base": 5,
"limit": 2,
"pref": "vaginal_sensitivity",
"tags": [
"sex",
"private",
"sexual",
"ask_beg",
"beg"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "hadSex",
"minStats": {},
"desc": "Beg for the escalation. Affection, lust and higher assertiveness matter, but your Dominance drops. If it works, both lower layers come off and Sex starts. Begging now needs real affection, lust and the right personality instead of riding arousal alone.",
"startsSexualState": "sex",
"stateDetail": "cowgirl",
"clothingSet": [
"bottomOff",
"pantiesOff",
"mutualUndress"
],
"playerUndress": true,
"activitySuccessCost": 4,
"skillWeights": {
"penetration": 0.7,
"empathy": 0.1,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"penetration",
"empathy",
"focus"
]
},
{
"id": "beg_blowjob",
"label": "Beg for a blowjob",
"tab": "Ask-beg",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 11,
"limit": 2,
"pref": "giving_oral",
"tags": [
"receiving_oral",
"private",
"sexual",
"ask_beg",
"beg"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "blowjob",
"minStats": {},
"desc": "Beg for the escalation. Affection, lust and higher assertiveness matter, but your Dominance drops. If it works, you expose yourself and Blowjob starts. Begging now needs real affection, lust and the right personality instead of riding arousal alone.",
"startsSexualState": "blowjob",
"stateDetail": "oral_give",
"playerUndress": true,
"activitySuccessCost": 2,
"skillWeights": {
"focus": 0.6,
"empathy": 0.4
},
"relationType": "sexual",
"skills": [
"focus",
"empathy"
]
},
{
"id": "beg_handjob",
"label": "Beg for a handjob",
"tab": "Ask-beg",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 23,
"limit": 2,
"pref": "handjob",
"tags": [
"handjob",
"private",
"sexual",
"ask_beg",
"beg"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Beg for the escalation. Affection, lust and higher assertiveness matter, but your Dominance drops. If it works, you expose yourself and Handjob starts. Begging now needs real affection, lust and the right personality instead of riding arousal alone.",
"startsSexualState": "handjob",
"stateDetail": "handjob",
"playerUndress": true,
"activitySuccessCost": 2,
"skillWeights": {
"touching": 0.6,
"focus": 0.25,
"empathy": 0.15
},
"relationType": "sexual",
"skills": [
"touching",
"focus",
"empathy"
]
},
{
"id": "beg_footjob",
"label": "Beg for a footjob",
"tab": "Ask-beg",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 28,
"limit": 2,
"tags": [
"footjob",
"private",
"sexual",
"ask_beg",
"beg"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Beg her to use her feet on you. Affection, lust and lower assertiveness matter, while Legs sensitivity still sets the preference check. If accepted, you expose yourself and Footjob starts.",
"startsSexualState": "footjob",
"stateDetail": "footjob",
"playerUndress": true,
"heatBase": 6.4,
"activitySuccessCost": 2,
"prefWeights": {
"legs_sensitivity": 0.8,
"touching": 0.2
},
"skillWeights": {
"focus": 0.6,
"empathy": 0.4
},
"relationType": "sexual",
"skills": [
"focus",
"empathy"
]
},
{
"id": "beg_titfuck",
"label": "Beg for a titfuck",
"tab": "Ask-beg",
"setting": "private",
"cost": 3,
"minutes": 2,
"base": 9,
"limit": 2,
"tags": [
"titfuck",
"breast",
"private",
"sexual",
"ask_beg",
"beg"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skillWeights": {
"focus": 0.45,
"empathy": 0.1,
"penetration": 0.45
},
"requiresFlags": [],
"setsFlag": "titfuck",
"minStats": {},
"desc": "Beg her to give you a titfuck. Primarily uses Titfuck preference, with a smaller Breast sensitivity influence, plus the normal begging angle.",
"startsSexualState": "titfuck",
"stateDetail": "titfuck",
"clothingSet": [
"topOff",
"braOff"
],
"playerUndress": true,
"heatBase": 7.4,
"activitySuccessCost": 4,
"prefWeights": {
"breast_sex": 0.7,
"breast_sensitivity": 0.3
},
"extraPrefs": [
"breast_sensitivity"
],
"relationType": "sexual",
"skills": [
"focus",
"empathy",
"penetration"
]
},
{
"id": "remove_your_clothes",
"label": "Remove your clothes",
"tab": "Strip",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 44,
"limit": 2,
"pref": null,
"tags": [
"private",
"sexual",
"risky",
"player_strip",
"strip"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"teasing",
"willpower"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "You undress yourself. She cannot stop it, but if the mood is wrong her patience and discomfort can spike hard. This does not train Exhibitionism by itself.",
"playerUndress": true,
"reactionCheck": true,
"relationType": "social"
},
{
"id": "ask_top_off",
"label": "Ask her to remove her top",
"tab": "Strip",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 38,
"limit": 99,
"pref": "undressing",
"tags": [
"strip",
"private",
"ask_strip"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "topOff",
"minStats": {},
"desc": "Ask her to remove her top. Safer than trying it yourself: more trust-based, lighter on lust, and only a small lust gain if she agrees.",
"stripMode": "ask",
"clothingSet": [
"topOff"
],
"requiresClothing": [],
"skillWeights": {
"charm": 0.35,
"empathy": 0.35,
"teasing": 0.2,
"focus": 0.1
},
"relationType": "social",
"skills": [
"charm",
"empathy",
"teasing",
"focus"
]
},
{
"id": "try_top_off",
"label": "Try to lift her top",
"tab": "Strip",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 27,
"limit": 99,
"pref": "undressing",
"tags": [
"strip",
"private",
"attempt_strip",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"dominance",
"touching",
"teasing"
],
"requiresFlags": [],
"setsFlag": "topOff",
"minStats": {},
"desc": "Physically try to lift her top. Dominance and her obedience matter much more now: if she is not already receptive, this should be harder than asking and much harsher when refused.",
"stripMode": "attempt",
"clothingSet": [
"topOff"
],
"requiresClothing": [],
"relationType": "social"
},
{
"id": "unhook_bra",
"label": "Try to unhook her bra",
"tab": "Strip",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 25,
"limit": 99,
"pref": "undressing",
"tags": [
"strip",
"private",
"attempt_strip",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"dominance",
"touching",
"teasing"
],
"requiresFlags": [],
"setsFlag": "braOff",
"minStats": {},
"desc": "Try to unhook her bra. This is a direct underwear-layer attempt: dominance, touch, and teasing matter, and a bad refusal should cost patience and comfort fast.",
"stripMode": "attempt",
"clothingSet": [
"braOff"
],
"requiresClothing": [
"topOff"
],
"relationType": "social"
},
{
"id": "ask_bra_off",
"label": "Ask her to remove her bra",
"tab": "Strip",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 32,
"limit": 99,
"pref": "undressing",
"tags": [
"strip",
"private",
"ask_strip"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "braOff",
"minStats": {},
"desc": "Ask her to remove her bra. This is a direct but verbal step: safer than unhooking it yourself, but more intimate than asking for her top.",
"stripMode": "ask",
"clothingSet": [
"braOff"
],
"requiresClothing": [],
"skillWeights": {
"charm": 0.35,
"empathy": 0.35,
"teasing": 0.2,
"focus": 0.1
},
"relationType": "social",
"skills": [
"charm",
"empathy",
"teasing",
"focus"
]
},
{
"id": "ask_bottom_off",
"label": "Ask her to remove her bottoms",
"tab": "Strip",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 32,
"limit": 99,
"pref": "undressing",
"tags": [
"strip",
"private",
"ask_strip"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "bottomOff",
"minStats": {},
"desc": "Ask her to remove her bottoms. More intimate than asking for the top, so it leans harder on trust, affection, lust and arousal.",
"stripMode": "ask",
"clothingSet": [
"bottomOff"
],
"requiresClothing": [],
"skillWeights": {
"charm": 0.35,
"empathy": 0.35,
"teasing": 0.2,
"focus": 0.1
},
"relationType": "social",
"skills": [
"charm",
"empathy",
"teasing",
"focus"
]
},
{
"id": "try_bottom_off",
"label": "Try to slide her bottoms off",
"tab": "Strip",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 24,
"limit": 99,
"pref": "undressing",
"tags": [
"strip",
"private",
"attempt_strip",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"dominance",
"touching",
"teasing"
],
"requiresFlags": [],
"setsFlag": "bottomOff",
"minStats": {},
"desc": "Physically try to slide her bottoms off. Dominance and obedience carry the attempt, but the lower layer is still harder and more punishing than a top attempt.",
"stripMode": "attempt",
"clothingSet": [
"bottomOff"
],
"requiresClothing": [],
"relationType": "social"
},
{
"id": "remove_panties",
"label": "Try to remove her panties",
"tab": "Strip",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 24,
"limit": 99,
"pref": "undressing",
"tags": [
"strip",
"private",
"attempt_strip",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "pantiesOff",
"minStats": {},
"desc": "Try to remove her panties. This is the riskiest underwear-layer attempt, carried by dominance, obedience, heat and lust, not charm.",
"stripMode": "attempt",
"clothingSet": [
"pantiesOff"
],
"requiresClothing": [
"bottomOff"
],
"skillWeights": {
"touching": 0.35,
"teasing": 0.3,
"dominance": 0.2,
"focus": 0.15
},
"relationType": "social",
"skills": [
"touching",
"teasing",
"dominance",
"focus"
]
},
{
"id": "ask_panties_off",
"label": "Ask her to remove her panties",
"tab": "Strip",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 30,
"limit": 99,
"pref": "undressing",
"tags": [
"strip",
"private",
"ask_strip"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "pantiesOff",
"minStats": {},
"desc": "Ask her to remove her panties. This is a direct final-layer request, still safer than trying, but more intimate and less trust-building than asking for bottoms.",
"stripMode": "ask",
"clothingSet": [
"pantiesOff"
],
"requiresClothing": [],
"skillWeights": {
"charm": 0.35,
"empathy": 0.35,
"teasing": 0.2,
"focus": 0.1
},
"relationType": "social",
"skills": [
"charm",
"empathy",
"teasing",
"focus"
]
},
{
"id": "strip_together",
"label": "Ask to undress together",
"tab": "Strip",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 26,
"limit": 99,
"pref": "undressing",
"tags": [
"strip",
"private",
"ask_strip",
"mutual_nudity",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "mutualUndress",
"minStats": {},
"desc": "Ask to undress together. This is a mutual step, so it stays harder than simple single-layer requests.",
"stripMode": "ask",
"clothingSet": [
"topOff",
"braOff",
"bottomOff",
"pantiesOff"
],
"requiresClothing": [],
"skillWeights": {
"charm": 0.35,
"empathy": 0.35,
"teasing": 0.2,
"focus": 0.1
},
"relationType": "social",
"skills": [
"charm",
"empathy",
"teasing",
"focus"
]
},
{
"id": "ask_naked",
"label": "Ask her to undress completely",
"tab": "Strip",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 34,
"limit": 99,
"pref": "undressing",
"tags": [
"strip",
"private",
"ask_strip",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "naked",
"minStats": {},
"desc": "Ask her to remove every remaining layer. This is harder than asking for one specific item and should never be the easiest strip request.",
"stripMode": "ask",
"clothingSet": [
"topOff",
"braOff",
"bottomOff",
"pantiesOff",
"naked"
],
"requiresClothing": [],
"skillWeights": {
"charm": 0.35,
"empathy": 0.35,
"teasing": 0.2,
"focus": 0.1
},
"relationType": "social",
"skills": [
"charm",
"empathy",
"teasing",
"focus"
]
},
{
"id": "gentle_command",
"label": "Give a gentle command",
"tab": "Command",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 62,
"limit": 2,
"pref": null,
"tags": [
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"dominance",
"willpower"
],
"requiresFlags": [],
"setsFlag": "commanded",
"minStats": {},
"desc": "Low intensity obedience training. Easier on low-assertiveness girls, but still checks your command presence.",
"relationType": "command"
},
{
"id": "make_her_hold_still",
"label": "Tell her to hold still",
"tab": "Command",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 50,
"limit": 2,
"pref": null,
"tags": [
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"dominance",
"willpower",
"focus"
],
"requiresFlags": [],
"setsFlag": "heldStill",
"minStats": {},
"desc": "Tell her to hold still. A stronger command than a gentle request, but no longer treated as public exposure by itself.",
"relationType": "command"
},
{
"id": "guide_position",
"label": "Guide her position",
"tab": "Command",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 46,
"limit": 2,
"pref": null,
"tags": [
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"dominance",
"touching",
"willpower"
],
"requiresFlags": [],
"setsFlag": "guidedPosition",
"minStats": {},
"desc": "Guide her position with a direct command. More physical than asking her to hold still, and still harder in public.",
"relationType": "command"
},
{
"id": "dirty_praise",
"label": "Dirty praise",
"tab": "Command",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 28,
"limit": 3,
"pref": null,
"tags": [
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"dominance",
"teasing",
"willpower"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Command-style dirty praise. Requires you to have already cum during this encounter, so the low base reflects the stronger context gate.",
"relationType": "command"
},
{
"id": "hold_eye_contact_command",
"label": "Tell her to keep eye contact",
"tab": "Command",
"setting": "any",
"cost": 3,
"minutes": 1,
"base": 56,
"limit": 2,
"pref": null,
"tags": [
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"dominance",
"willpower",
"focus"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Tell her to keep eye contact. Slightly firmer than a gentle command, but still a low-pressure obedience check.",
"relationType": "command"
},
{
"id": "demand_cunnilingus",
"label": "Demand to lick her pussy",
"tab": "Command",
"setting": "private",
"cost": 6,
"minutes": 1,
"base": 14,
"limit": 2,
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Command her into letting you lick her pussy. If it works, her lower layers come off and Cunnilingus starts.",
"startsSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"clothingSet": [
"bottomOff",
"pantiesOff"
],
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"skillWeights": {
"oral": 0.9,
"focus": 0.1
},
"relationType": "command",
"skills": [
"oral",
"focus"
]
},
{
"id": "demand_sixty_nine",
"label": "Demand 69",
"tab": "Command",
"setting": "private",
"cost": 4,
"minutes": 2,
"base": 12,
"limit": 2,
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skillWeights": {
"oral": 0.7,
"empathy": 0.15,
"focus": 0.15
},
"requiresFlags": [],
"setsFlag": "sixtyNine",
"minStats": {},
"desc": "Command her into 69. Uses the 69 preference and oral angle from the ask version, plus the normal demand pressure from obedience, lust and your Dominance.",
"startsSexualState": "sixty_nine",
"clothingSet": [
"bottomOff",
"pantiesOff",
"mutualUndress"
],
"playerUndress": true,
"stateDetail": "sixty_nine",
"heatBase": 14.0,
"activitySuccessCost": 4,
"prefWeights": {
"sixty_nine": 0.6,
"giving_oral": 0.2,
"receiving_oral": 0.2
},
"relationType": "command",
"skills": [
"oral",
"empathy",
"focus"
]
},
{
"id": "demand_anal_sex",
"label": "Demand anal sex",
"tab": "Command",
"setting": "private",
"cost": 4,
"minutes": 3,
"base": 1,
"limit": 1,
"pref": "anal_sensitivity",
"tags": [
"anal",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "analSex",
"minStats": {},
"desc": "Command her into the escalation. Low obedience can make this trade affection for obedience. Dominance, lust and lower assertiveness matter. If it works, both lower layers come off and Anal starts.",
"startsSexualState": "anal",
"stateDetail": "anal_wall",
"clothingSet": [
"bottomOff",
"pantiesOff",
"mutualUndress"
],
"playerUndress": true,
"activitySuccessCost": 4,
"skillWeights": {
"anal": 0.7,
"empathy": 0.1,
"focus": 0.2
},
"relationType": "command",
"skills": [
"anal",
"empathy",
"focus"
]
},
{
"id": "demand_sex",
"label": "Demand sex",
"tab": "Command",
"setting": "private",
"cost": 4,
"minutes": 2,
"base": 7,
"limit": 2,
"pref": "vaginal_sensitivity",
"tags": [
"sex",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "hadSex",
"minStats": {},
"desc": "Command her into the escalation. Low obedience can make this trade affection for obedience. Dominance, lust and lower assertiveness matter. If it works, both lower layers come off and Sex starts.",
"startsSexualState": "sex",
"stateDetail": "wall",
"clothingSet": [
"bottomOff",
"pantiesOff",
"mutualUndress"
],
"playerUndress": true,
"activitySuccessCost": 4,
"skillWeights": {
"penetration": 0.7,
"empathy": 0.1,
"focus": 0.2
},
"relationType": "command",
"skills": [
"penetration",
"empathy",
"focus"
]
},
{
"id": "demand_blowjob",
"label": "Demand a blowjob",
"tab": "Command",
"setting": "private",
"cost": 6,
"minutes": 1,
"base": 13,
"limit": 2,
"pref": "giving_oral",
"tags": [
"receiving_oral",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "blowjob",
"minStats": {},
"desc": "Command her into the escalation. Low obedience can make this trade affection for obedience. Dominance, lust and lower assertiveness matter. If it works, you expose yourself and Blowjob starts.",
"startsSexualState": "blowjob",
"stateDetail": "oral_give",
"playerUndress": true,
"skillWeights": {
"focus": 0.6,
"empathy": 0.4
},
"relationType": "command",
"skills": [
"focus",
"empathy"
]
},
{
"id": "demand_handjob",
"label": "Demand a handjob",
"tab": "Command",
"setting": "private",
"cost": 4,
"minutes": 1,
"base": 23,
"limit": 2,
"pref": "handjob",
"tags": [
"handjob",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Command her into the escalation. Low obedience can make this trade affection for obedience. Dominance, lust and lower assertiveness matter. If it works, you expose yourself and Handjob starts.",
"startsSexualState": "handjob",
"stateDetail": "handjob",
"playerUndress": true,
"skillWeights": {
"touching": 0.6,
"focus": 0.25,
"empathy": 0.15
},
"relationType": "command",
"skills": [
"touching",
"focus",
"empathy"
]
},
{
"id": "demand_footjob",
"label": "Demand a footjob",
"tab": "Command",
"setting": "private",
"cost": 4,
"minutes": 1,
"base": 23,
"limit": 2,
"tags": [
"footjob",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Command her to use her feet on you. Uses Legs sensitivity with the normal demand pressure from obedience, lust and your Dominance. If accepted, you expose yourself and Footjob starts.",
"startsSexualState": "footjob",
"stateDetail": "footjob",
"playerUndress": true,
"heatBase": 6.4,
"activitySuccessCost": 2,
"skillWeights": {
"focus": 0.6,
"empathy": 0.4
},
"prefWeights": {
"legs_sensitivity": 0.8,
"touching": 0.2
},
"relationType": "command",
"skills": [
"focus",
"empathy"
]
},
{
"id": "demand_titfuck",
"label": "Demand a titfuck",
"tab": "Command",
"setting": "private",
"cost": 4,
"minutes": 2,
"base": 5,
"limit": 2,
"tags": [
"titfuck",
"breast",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skillWeights": {
"focus": 0.45,
"empathy": 0.1,
"penetration": 0.45
},
"requiresFlags": [],
"setsFlag": "titfuck",
"minStats": {},
"desc": "Command her to titfuck you. Primarily uses Titfuck preference, with a smaller Breast sensitivity influence, plus the normal dominance, obedience, and lust pressure.",
"startsSexualState": "titfuck",
"stateDetail": "titfuck",
"clothingSet": [
"topOff",
"braOff"
],
"playerUndress": true,
"heatBase": 7.4,
"activitySuccessCost": 4,
"prefWeights": {
"breast_sex": 0.7,
"breast_sensitivity": 0.3
},
"extraPrefs": [
"breast_sensitivity"
],
"relationType": "command",
"skills": [
"focus",
"empathy",
"penetration"
]
},
{
"id": "cont_rubbing_keep",
"label": "Continue rubbing her",
"tab": "Continue",
"setting": "any",
"cost": 5,
"minutes": 1,
"base": 88,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"touch"
],
"continueState": "rubbing",
"nextSexualState": null,
"stateDetail": "rubbing",
"heatBase": 7.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"touching",
"teasing"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue rubbing her through fabric. If the rubbing started in public, this can continue in public instead of requiring a private home setting. High chance once accepted, but failure stops the rubbing state.",
"prefWeights": {
"touching": 0.5,
"vaginal_sensitivity": 0.5
},
"relationType": "sexual"
},
{
"id": "slide_hand_inside_panties_public",
"label": "Slide your hand inside her panties",
"tab": "Continue",
"setting": "any",
"publicOnly": true,
"cost": 6,
"minutes": 1,
"base": 85,
"limit": 99,
"tags": [
"continue_state",
"public",
"sexual",
"touch",
"risky"
],
"continueState": "rubbing",
"nextSexualState": null,
"stateDetail": "rubbing_inside_panties",
"heatBase": 13.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "underPantiesRubbedPublic",
"minStats": {},
"desc": "Public-only escalation from rubbing through fabric. Slides your hand inside her panties without removing them. Harder than continuing the rub because of the exposure risk, but still driven by arousal, skill and her fingering preference. Hidden completely in private settings.",
"prefWeights": {
"touching": 0.28,
"fingering": 0.14,
"vaginal_sensitivity": 0.28,
"exhibitionism": 0.3
},
"skillWeights": {
"touching": 0.45,
"teasing": 0.35,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"touching",
"teasing",
"focus"
]
},
{
"id": "bring_hand_inside_pants",
"label": "Bring her hand inside your pants",
"tab": "Petting",
"setting": "any",
"publicOnly": true,
"cost": 3,
"minutes": 1,
"base": 45,
"limit": 2,
"tags": [
"petting",
"public",
"sexual",
"touch",
"handjob",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Guide her hand inside your pants in public. A high-risk public action that starts a short hidden handjob chain instead of the normal private handjob route.",
"startsSexualState": "public_handjob",
"stateDetail": "public_handjob",
"requiresPlayerDressed": true,
"prefWeights": {
"handjob": 0.7,
"exhibitionism": 0.3
},
"skillWeights": {
"touching": 0.45,
"teasing": 0.35,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"touching",
"teasing",
"focus"
]
},
{
"id": "cont_rubbing_to_fingering",
"label": "Remove her panties and slide your finger inside",
"tab": "Continue",
"setting": "private",
"cost": 6,
"minutes": 2,
"base": 8,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"touch",
"strip",
"risky"
],
"continueState": "rubbing",
"nextSexualState": "fingering",
"stateDetail": "fingering",
"heatBase": 14.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"clothingSet": [
"pantiesOff"
],
"minStats": {},
"desc": "Escalate from rubbing through fabric to fingering. Slightly easier than starting fingering cold, but still risky and intimate.",
"prefWeights": {
"fingering": 0.6,
"vaginal_sensitivity": 0.4
},
"skillWeights": {
"touching": 0.6,
"teasing": 0.25,
"focus": 0.15
},
"relationType": "sexual",
"skills": [
"touching",
"teasing",
"focus"
]
},
{
"id": "lick_pussy",
"label": "Lick her pussy",
"tab": "Hidden",
"setting": "private",
"cost": 12,
"minutes": 3,
"base": 20,
"limit": 3,
"tags": [
"oral",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "cunnilingus",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"skillWeights": {
"oral": 0.9,
"focus": 0.1
},
"relationType": "sexual",
"skills": [
"oral",
"focus"
]
},
{
"id": "suck_clit",
"label": "Suck her clit",
"tab": "Hidden",
"setting": "private",
"cost": 12,
"minutes": 3,
"base": 19,
"limit": 3,
"tags": [
"oral",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "clitSucked",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "cunnilingus",
"stateDetail": "clit",
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"skillWeights": {
"oral": 0.9,
"focus": 0.1
},
"relationType": "sexual",
"skills": [
"oral",
"focus"
]
},
{
"id": "missionary",
"label": "Missionary",
"tab": "Hidden",
"setting": "private",
"cost": 21,
"minutes": 3,
"base": 11,
"limit": 3,
"tags": [
"sex",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "hadSex",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "sex",
"stateDetail": "missionary",
"prefWeights": {
"missionary": 0.7,
"vaginal_sensitivity": 0.3
},
"skillWeights": {
"penetration": 0.7,
"empathy": 0.1,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"penetration",
"empathy",
"focus"
]
},
{
"id": "cowgirl",
"label": "Cowgirl",
"tab": "Hidden",
"setting": "private",
"cost": 21,
"minutes": 3,
"base": 11,
"limit": 3,
"tags": [
"sex",
"private",
"sexual",
"submissive_position"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "hadSex",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "sex",
"stateDetail": "cowgirl",
"prefWeights": {
"cowgirl": 0.7,
"vaginal_sensitivity": 0.3
},
"skillWeights": {
"penetration": 0.45,
"empathy": 0.3,
"focus": 0.25
},
"relationType": "sexual",
"skills": [
"penetration",
"empathy",
"focus"
]
},
{
"id": "reverse_cowgirl",
"label": "Reverse cowgirl",
"tab": "Hidden",
"setting": "private",
"cost": 21,
"minutes": 3,
"base": 10,
"limit": 3,
"tags": [
"sex",
"private",
"sexual",
"submissive_position"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "reverseCowgirlSex",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "sex",
"stateDetail": "reverse_cowgirl",
"prefWeights": {
"reverse_cowgirl": 0.7,
"vaginal_sensitivity": 0.3
},
"skillWeights": {
"penetration": 0.45,
"focus": 0.35,
"empathy": 0.2
},
"relationType": "sexual",
"skills": [
"penetration",
"focus",
"empathy"
]
},
{
"id": "doggy",
"label": "Doggy style",
"tab": "Hidden",
"setting": "private",
"cost": 21,
"minutes": 3,
"base": 10,
"limit": 3,
"tags": [
"sex",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "hadDoggy",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "sex",
"stateDetail": "doggy",
"prefWeights": {
"doggy": 0.7,
"vaginal_sensitivity": 0.3
},
"skillWeights": {
"penetration": 0.7,
"focus": 0.15,
"dominance": 0.15
},
"relationType": "sexual",
"skills": [
"penetration",
"focus",
"dominance"
]
},
{
"id": "against_wall",
"label": "Sex against wall",
"tab": "Hidden",
"setting": "private",
"cost": 24,
"minutes": 3,
"base": 9,
"limit": 2,
"tags": [
"sex",
"private",
"sexual",
"risky",
"dominant_position"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "wallSex",
"minStats": {},
"desc": "Hidden action, kept out of normal play. Standing wall sex keeps her facing you.",
"startsSexualState": "sex",
"stateDetail": "wall",
"prefWeights": {
"wall": 0.7,
"vaginal_sensitivity": 0.3
},
"skillWeights": {
"penetration": 0.5,
"fitness": 0.25,
"dominance": 0.25
},
"relationType": "sexual",
"skills": [
"penetration",
"fitness",
"dominance"
]
},
{
"id": "breast_sex",
"label": "Breast sex",
"tab": "Hidden",
"setting": "private",
"cost": 15,
"minutes": 3,
"base": 12,
"limit": 2,
"tags": [
"sex",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "breastSex",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "sex",
"stateDetail": "breast_sex",
"prefWeights": {
"breast_sex": 0.7,
"breast_sensitivity": 0.3
},
"skillWeights": {
"focus": 0.45,
"empathy": 0.1,
"penetration": 0.45
},
"relationType": "sexual",
"skills": [
"focus",
"empathy",
"penetration"
]
},
{
"id": "anal_doggy",
"label": "Anal doggy",
"tab": "Hidden",
"setting": "private",
"cost": 24,
"minutes": 3,
"base": 2,
"limit": 2,
"tags": [
"anal",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "analDoggy",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "anal",
"stateDetail": "anal_doggy",
"extraPrefs": [
"anal_sensitivity"
],
"prefWeights": {
"anal_sensitivity": 0.6,
"doggy": 0.4
},
"skillWeights": {
"anal": 0.7,
"focus": 0.15,
"dominance": 0.15
},
"relationType": "sexual",
"skills": [
"anal",
"focus",
"dominance"
]
},
{
"id": "anal_missionary",
"label": "Anal missionary",
"tab": "Hidden",
"setting": "private",
"cost": 24,
"minutes": 3,
"base": 4,
"limit": 2,
"tags": [
"anal",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "analMissionary",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "anal",
"stateDetail": "anal_missionary",
"extraPrefs": [
"anal_sensitivity"
],
"prefWeights": {
"anal_sensitivity": 0.6,
"missionary": 0.4
},
"skillWeights": {
"anal": 0.7,
"empathy": 0.1,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"anal",
"empathy",
"focus"
]
},
{
"id": "anal_cowgirl",
"label": "Anal cowgirl",
"tab": "Hidden",
"setting": "private",
"cost": 24,
"minutes": 3,
"base": 3,
"limit": 2,
"tags": [
"anal",
"private",
"sexual",
"submissive_position"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "analCowgirl",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "anal",
"stateDetail": "anal_cowgirl",
"extraPrefs": [
"anal_sensitivity"
],
"prefWeights": {
"anal_sensitivity": 0.6,
"cowgirl": 0.4
},
"skillWeights": {
"anal": 0.45,
"empathy": 0.3,
"focus": 0.25
},
"relationType": "sexual",
"skills": [
"anal",
"empathy",
"focus"
]
},
{
"id": "anal_reverse_cowgirl",
"label": "Anal reverse cowgirl",
"tab": "Hidden",
"setting": "private",
"cost": 24,
"minutes": 3,
"base": 3,
"limit": 2,
"tags": [
"anal",
"private",
"sexual",
"submissive_position"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "analReverseCowgirl",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "anal",
"stateDetail": "anal_reverse_cowgirl",
"extraPrefs": [
"anal_sensitivity"
],
"prefWeights": {
"anal_sensitivity": 0.6,
"reverse_cowgirl": 0.4
},
"skillWeights": {
"anal": 0.45,
"focus": 0.35,
"empathy": 0.2
},
"relationType": "sexual",
"skills": [
"anal",
"focus",
"empathy"
]
},
{
"id": "anal_wall",
"label": "Anal against wall",
"tab": "Hidden",
"setting": "private",
"cost": 27,
"minutes": 3,
"base": 2,
"limit": 2,
"tags": [
"anal",
"private",
"sexual",
"risky",
"dominant_position"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "analWall",
"minStats": {},
"desc": "Hidden action, kept out of normal play.",
"startsSexualState": "anal",
"stateDetail": "anal_wall",
"extraPrefs": [
"anal_sensitivity"
],
"prefWeights": {
"anal_sensitivity": 0.6,
"wall": 0.4
},
"skillWeights": {
"anal": 0.5,
"fitness": 0.25,
"dominance": 0.25
},
"relationType": "sexual",
"skills": [
"anal",
"fitness",
"dominance"
]
},
{
"id": "cont_finger_keep",
"label": "Keep fingering her",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 82,
"limit": 99,
"pref": "fingering",
"tags": [
"continue_state",
"private",
"sexual",
"touch"
],
"continueState": "fingering",
"nextSexualState": null,
"stateDetail": "fingering",
"heatBase": 9.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"touching",
"focus"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue the fingering rhythm already accepted.",
"relationType": "sexual"
},
{
"id": "cont_finger_tease",
"label": "Tease her with your fingers",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 72,
"limit": 99,
"pref": "fingering",
"tags": [
"continue_state",
"private",
"sexual",
"touch",
"risky"
],
"continueState": "fingering",
"nextSexualState": null,
"stateDetail": "fingering",
"heatBase": 14.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"touching",
"teasing"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "A teasing fingering continuation. Harder than simply keeping the rhythm, but it rewards Touching and Teasing.",
"relationType": "sexual"
},
{
"id": "cont_finger_to_mouth",
"label": "Move your mouth to her clit",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 2,
"base": 66,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"touch",
"risky"
],
"continueState": "fingering",
"nextSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"heatBase": 16.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"oral",
"teasing",
"touching"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Escalates from fingering to cunnilingus if it works.",
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"relationType": "sexual"
},
{
"id": "cont_cunni_keep",
"label": "Keep licking her",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 80,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral"
],
"continueState": "cunnilingus",
"nextSexualState": null,
"stateDetail": "oral_receive",
"heatBase": 10.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Stable continuation. Uses oral skill and focus.",
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"skillWeights": {
"oral": 0.8,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"oral",
"focus"
]
},
{
"id": "cont_cunni_tease",
"label": "Tease her with your tongue",
"tab": "Continue",
"setting": "private",
"cost": 4,
"minutes": 1,
"base": 72,
"limit": 4,
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"tease"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Precise oral variation. Higher heat, better when your Oral and Focus skills are high.",
"continueState": "cunnilingus",
"nextSexualState": null,
"stateDetail": "teasing",
"heatBase": 14.0,
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"skillWeights": {
"oral": 0.8,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"oral",
"focus"
]
},
{
"id": "cont_cunni_add_fingers",
"label": "Add your fingers while licking",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 62,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"touch",
"risky"
],
"continueState": "cunnilingus",
"nextSexualState": null,
"stateDetail": "fingering",
"heatBase": 16.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Mixed hands and tongue action. Its skill score averages oral and touching.",
"prefWeights": {
"receiving_oral": 0.5,
"fingering": 0.3,
"vaginal_sensitivity": 0.2
},
"skillWeights": {
"oral": 0.5,
"touching": 0.35,
"focus": 0.15
},
"relationType": "sexual",
"skills": [
"oral",
"touching",
"focus"
]
},
{
"id": "cont_cunni_to_analingus",
"label": "Shift your tongue lower",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 44,
"limit": 3,
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"analingus",
"risky",
"state_shift"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Variation from cunnilingus into analingus. Checks anal sensitivity, arousal, closeness, oral, teasing and empathy.",
"continueState": "cunnilingus",
"nextSexualState": "analingus",
"stateDetail": "analingus",
"heatBase": 12.0,
"prefWeights": {
"anal_sensitivity": 0.5,
"receiving_oral": 0.5
},
"skillWeights": {
"oral": 0.5,
"teasing": 0.111111,
"empathy": 0.166667,
"focus": 0.222222
},
"relationType": "sexual",
"skills": [
"oral",
"teasing",
"empathy",
"focus"
]
},
{
"id": "cont_cunni_to_sex",
"label": "Escalate from oral to sex",
"tab": "Continue",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 30,
"limit": 99,
"pref": "vaginal_sensitivity",
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"risky",
"state_escalation"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"continueState": "cunnilingus",
"heatBase": 20.0,
"desc": "Escalate from oral to vaginal sex. Requires you naked and hard, then checks sex stats and vaginal sensitivity.",
"nextSexualState": "sex",
"stateDetail": "missionary",
"requiresPlayerUndressed": true,
"requiresClothing": [
"bottomOff",
"pantiesOff"
],
"activitySuccessCost": 4,
"skillWeights": {
"penetration": 0.55,
"teasing": 0.25,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"penetration",
"teasing",
"focus"
]
},
{
"id": "cont_bj_let_continue",
"label": "Let her keep sucking you",
"tab": "Continue",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 84,
"limit": 99,
"pref": "giving_oral",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral"
],
"continueState": "blowjob",
"nextSexualState": null,
"stateDetail": "oral_give",
"heatBase": 5.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Let the blowjob continue without pushing for a new escalation.",
"skillWeights": {
"focus": 0.5,
"empathy": 0.5
},
"relationType": "sexual",
"skills": [
"focus",
"empathy"
]
},
{
"id": "cont_hj_keep",
"label": "Let her keep stroking you",
"tab": "Continue",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 84,
"limit": 99,
"pref": "handjob",
"tags": [
"continue_state",
"private",
"sexual",
"handjob"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue the handjob without pushing for a new escalation.",
"continueState": "handjob",
"nextSexualState": null,
"stateDetail": "handjob",
"heatBase": 5.4,
"skillWeights": {
"focus": 0.5,
"empathy": 0.5
},
"relationType": "sexual",
"skills": [
"focus",
"empathy"
]
},
{
"id": "cont_public_handjob_keep",
"label": "Let her keep jerking you",
"tab": "Continue",
"setting": "any",
"publicOnly": true,
"cost": 2,
"minutes": 1,
"base": 84,
"limit": 99,
"tags": [
"continue_state",
"public",
"sexual",
"handjob"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue the hidden public handjob. It stays inside the public-risk chain and does not become the normal private handjob state.",
"continueState": "public_handjob",
"nextSexualState": null,
"stateDetail": "public_handjob",
"heatBase": 5.4,
"requiresPlayerDressed": true,
"prefWeights": {
"handjob": 0.7,
"exhibitionism": 0.3
},
"skillWeights": {
"focus": 0.5,
"empathy": 0.5
},
"relationType": "sexual",
"skills": [
"focus",
"empathy"
]
},
{
"id": "cont_hj_guide_rhythm",
"label": "Guide her hand",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 78,
"limit": 99,
"pref": "handjob",
"tags": [
"continue_state",
"private",
"sexual",
"handjob",
"control"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"dominance",
"focus",
"teasing"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Guide the rhythm while staying in the accepted Handjob state.",
"continueState": "handjob",
"nextSexualState": null,
"stateDetail": "handjob",
"heatBase": 6.0,
"relationType": "sexual"
},
{
"id": "cont_hj_kiss",
"label": "Kiss while she strokes you",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 80,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"handjob",
"kiss"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Keep the handjob going while making it more intimate.",
"continueState": "handjob",
"nextSexualState": null,
"stateDetail": "kissing",
"heatBase": 5.4,
"prefWeights": {
"handjob": 0.7,
"kissing": 0.3
},
"skillWeights": {
"kissing": 0.6,
"empathy": 0.2,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"kissing",
"empathy",
"focus"
]
},
{
"id": "cont_hj_tease",
"label": "Tease her while she strokes you",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 76,
"limit": 99,
"pref": "handjob",
"tags": [
"continue_state",
"private",
"sexual",
"handjob"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Keep the Handjob state going with more verbal heat.",
"continueState": "handjob",
"nextSexualState": null,
"stateDetail": "teasing",
"heatBase": 5.6,
"skillWeights": {
"teasing": 0.6,
"charm": 0.2,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"teasing",
"charm",
"focus"
]
},
{
"id": "cont_hj_to_bj",
"label": "Guide her hand to her mouth",
"tab": "Continue",
"setting": "private",
"cost": 6,
"minutes": 2,
"base": 56,
"limit": 99,
"pref": "giving_oral",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral",
"state_shift"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"charm",
"teasing",
"empathy"
],
"requiresFlags": [],
"setsFlag": "blowjob",
"minStats": {},
"continueState": "handjob",
"nextSexualState": "blowjob",
"stateDetail": "oral_give",
"heatBase": 12.0,
"desc": "Transition from handjob to blowjob. Uses her giving-oral preference and the rhythm already built.",
"relationType": "sexual"
},
{
"id": "cont_footjob_keep",
"label": "Let her continue the footjob",
"tab": "Continue",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 88,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"footjob"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Let the footjob continue without pushing for a new escalation.",
"continueState": "footjob",
"nextSexualState": null,
"stateDetail": "footjob",
"heatBase": 6.4,
"prefWeights": {
"legs_sensitivity": 0.8,
"touching": 0.2
},
"skillWeights": {
"focus": 0.5,
"empathy": 0.5
},
"relationType": "sexual",
"skills": [
"focus",
"empathy"
]
},
{
"id": "cont_titfuck_keep",
"label": "Continue to fuck her tits",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 82,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"titfuck",
"breast"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skillWeights": {
"focus": 0.45,
"empathy": 0.1,
"penetration": 0.45
},
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Steady titfuck continuation. Mainly follows Titfuck preference, with a smaller Breast sensitivity influence.",
"continueState": "titfuck",
"nextSexualState": null,
"stateDetail": "titfuck",
"heatBase": 7.4,
"prefWeights": {
"breast_sex": 0.7,
"breast_sensitivity": 0.3
},
"extraPrefs": [
"breast_sensitivity"
],
"relationType": "sexual",
"skills": [
"focus",
"empathy",
"penetration"
]
},
{
"id": "cont_titfuck_let_work",
"label": "Let her do the work",
"tab": "Continue",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 68,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"titfuck",
"breast",
"control"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skillWeights": {
"dominance": 0.45,
"focus": 0.2,
"teasing": 0.25,
"penetration": 0.1
},
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Let her control the titfuck pace. Mainly follows Titfuck preference, with a smaller Breast sensitivity influence, while leaning more on obedience and your dominance.",
"continueState": "titfuck",
"nextSexualState": null,
"stateDetail": "titfuck",
"heatBase": 6.6,
"prefWeights": {
"breast_sex": 0.7,
"breast_sensitivity": 0.3
},
"extraPrefs": [
"breast_sensitivity"
],
"relationType": "sexual",
"skills": [
"dominance",
"focus",
"teasing",
"penetration"
]
},
{
"id": "cont_titfuck_lick_tip",
"label": "Ask her to lick the tip",
"tab": "Continue",
"setting": "private",
"cost": 2,
"minutes": 1,
"base": 64,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"titfuck",
"breast",
"oral_light",
"control"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skillWeights": {
"teasing": 0.45,
"dominance": 0.35,
"focus": 0.2
},
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Push the titfuck into a riskier, more intimate rhythm by letting her tongue work over the tip between strokes. Mainly follows Titfuck preference, with a smaller Breast sensitivity influence.",
"continueState": "titfuck",
"nextSexualState": null,
"stateDetail": "titfuck_lick_tip",
"heatBase": 8.0,
"prefWeights": {
"breast_sex": 0.7,
"breast_sensitivity": 0.3
},
"extraPrefs": [
"breast_sensitivity"
],
"relationType": "sexual",
"skills": [
"teasing",
"dominance",
"focus"
]
},
{
"id": "cont_bj_guide_rhythm",
"label": "Guide her rhythm",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 76,
"limit": 99,
"pref": "giving_oral",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral",
"control"
],
"continueState": "blowjob",
"nextSexualState": null,
"stateDetail": "oral_give",
"heatBase": 8.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Guide the rhythm without treating it like a fresh permission check.",
"skillWeights": {
"dominance": 0.55,
"focus": 0.45
},
"relationType": "sexual",
"skills": [
"dominance",
"focus"
]
},
{
"id": "cont_bj_praise",
"label": "Praise what she is doing",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 86,
"limit": 99,
"pref": "giving_oral",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral",
"social"
],
"continueState": "blowjob",
"nextSexualState": null,
"stateDetail": "oral_give",
"heatBase": 6.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Encourage her while the blowjob continues.",
"skillWeights": {
"empathy": 0.3,
"charm": 0.4,
"teasing": 0.1,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"empathy",
"charm",
"teasing",
"focus"
]
},
{
"id": "cont_bj_deeper",
"label": "Encourage her to go deeper",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 68,
"limit": 99,
"pref": "giving_oral",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral",
"risky"
],
"continueState": "blowjob",
"nextSexualState": null,
"stateDetail": "deepthroat",
"heatBase": 10.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Encourage her to take your cock deeper without ending the blowjob. Harder than the normal blowjob continue action, and it strains her patience more if it fails.",
"skillWeights": {
"dominance": 0.55,
"teasing": 0.25,
"empathy": 0.2
},
"relationType": "sexual",
"skills": [
"dominance",
"teasing",
"empathy"
]
},
{
"id": "cont_bj_slow_down",
"label": "Slow her down",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 82,
"limit": 99,
"pref": "giving_oral",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral"
],
"continueState": "blowjob",
"nextSexualState": null,
"stateDetail": "oral_give",
"heatBase": 5.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"skills": [
"empathy",
"focus"
],
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Lower the pace without ending the state.",
"relationType": "sexual"
},
{
"id": "cont_bj_eye_contact",
"label": "Hold eye contact with her",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 79,
"limit": 99,
"pref": "giving_oral",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral"
],
"continueState": "blowjob",
"nextSexualState": null,
"stateDetail": "oral_give",
"heatBase": 7.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Add tension through eye contact.",
"skillWeights": {
"focus": 0.3,
"empathy": 0.3,
"dominance": 0.3,
"teasing": 0.1
},
"relationType": "sexual",
"skills": [
"focus",
"empathy",
"dominance",
"teasing"
]
},
{
"id": "cont_bj_touch_hair",
"label": "Touch her hair while she sucks you",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 1,
"base": 73,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral",
"touch"
],
"continueState": "blowjob",
"nextSexualState": null,
"stateDetail": "oral_give",
"heatBase": 7.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "A tactile blowjob variation.",
"prefWeights": {
"giving_oral": 0.8,
"touching": 0.2
},
"skillWeights": {
"dominance": 0.3,
"empathy": 0.4,
"charm": 0.3
},
"relationType": "sexual",
"skills": [
"dominance",
"empathy",
"charm"
]
},
{
"id": "cont_bj_to_sex",
"label": "Pull her up into sex",
"tab": "Continue",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 44,
"limit": 99,
"pref": "vaginal_sensitivity",
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"risky",
"state_escalation"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "hadSex",
"minStats": {},
"continueState": "blowjob",
"nextSexualState": "sex",
"stateDetail": "missionary",
"heatBase": 18.0,
"requiresPlayerUndressed": true,
"requiresClothing": [
"bottomOff",
"pantiesOff"
],
"desc": "Escalate from blowjob to vaginal sex. Requires you naked and hard, and checks vaginal sensitivity rather than oral preference.",
"activitySuccessCost": 4,
"skillWeights": {
"penetration": 0.55,
"teasing": 0.25,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"penetration",
"teasing",
"focus"
]
},
{
"id": "cont_sex_missionary",
"label": "Continue missionary",
"tab": "Continue",
"setting": "private",
"cost": 7,
"minutes": 2,
"base": 80,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"sex"
],
"continueState": "sex",
"nextSexualState": null,
"stateDetail": "missionary",
"heatBase": 16.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue sex in missionary position.",
"prefWeights": {
"missionary": 0.7,
"vaginal_sensitivity": 0.3
},
"skillWeights": {
"penetration": 0.7,
"empathy": 0.1,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"penetration",
"empathy",
"focus"
]
},
{
"id": "cont_sex_doggy",
"label": "Continue doggy style",
"tab": "Continue",
"setting": "private",
"cost": 8,
"minutes": 2,
"base": 74,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"sex"
],
"continueState": "sex",
"nextSexualState": null,
"stateDetail": "doggy",
"heatBase": 19.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue sex in doggy position.",
"prefWeights": {
"doggy": 0.7,
"vaginal_sensitivity": 0.3
},
"skillWeights": {
"penetration": 0.7,
"focus": 0.15,
"dominance": 0.15
},
"relationType": "sexual",
"skills": [
"penetration",
"focus",
"dominance"
]
},
{
"id": "cont_sex_cowgirl",
"label": "Continue cowgirl",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 78,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"submissive_position"
],
"continueState": "sex",
"nextSexualState": null,
"stateDetail": "cowgirl",
"heatBase": 17.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue sex with her on top.",
"prefWeights": {
"cowgirl": 0.7,
"vaginal_sensitivity": 0.3
},
"skillWeights": {
"penetration": 0.45,
"empathy": 0.3,
"focus": 0.25
},
"relationType": "sexual",
"skills": [
"penetration",
"empathy",
"focus"
]
},
{
"id": "cont_sex_reverse_cowgirl",
"label": "Continue reverse cowgirl",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 76,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"submissive_position"
],
"continueState": "sex",
"nextSexualState": null,
"stateDetail": "reverse_cowgirl",
"heatBase": 17.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue sex with her riding you in reverse cowgirl.",
"prefWeights": {
"reverse_cowgirl": 0.7,
"vaginal_sensitivity": 0.3
},
"skillWeights": {
"penetration": 0.45,
"focus": 0.35,
"empathy": 0.2
},
"relationType": "sexual",
"skills": [
"penetration",
"focus",
"empathy"
]
},
{
"id": "cont_sex_wall",
"label": "Continue against wall",
"tab": "Continue",
"setting": "private",
"cost": 11,
"minutes": 3,
"base": 66,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"risky",
"dominant_position"
],
"continueState": "sex",
"nextSexualState": null,
"stateDetail": "wall",
"heatBase": 21.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue sex standing against the wall.",
"prefWeights": {
"wall": 0.7,
"vaginal_sensitivity": 0.3
},
"skillWeights": {
"penetration": 0.5,
"fitness": 0.25,
"dominance": 0.25
},
"relationType": "sexual",
"skills": [
"penetration",
"fitness",
"dominance"
]
},
{
"id": "cont_sex_to_anal",
"label": "Escalate from sex to anal",
"tab": "Continue",
"setting": "private",
"cost": 9,
"minutes": 3,
"base": 36,
"limit": 99,
"pref": "anal_sensitivity",
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"risky"
],
"continueState": "sex",
"nextSexualState": "anal",
"stateDetail": "anal_doggy",
"heatBase": 15.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "analSex",
"minStats": {},
"desc": "Transition from vaginal sex to anal sex. Uses anal checks and anal sensitivity, not generic sex continuation.",
"activitySuccessCost": 3,
"skillWeights": {
"anal": 0.55,
"empathy": 0.25,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"anal",
"empathy",
"focus"
]
},
{
"id": "cont_sex_to_69",
"label": "Shift into 69",
"tab": "Continue",
"setting": "private",
"cost": 9,
"minutes": 2,
"base": 68,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral"
],
"continueState": "sex",
"nextSexualState": "sixty_nine",
"stateDetail": "sixty_nine",
"heatBase": 13.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "sixtyNine",
"minStats": {},
"desc": "Transition from active sex into mutual oral without resetting the scene.",
"prefWeights": {
"sixty_nine": 0.6,
"giving_oral": 0.2,
"receiving_oral": 0.2
},
"skillWeights": {
"oral": 0.7,
"empathy": 0.15,
"focus": 0.15
},
"relationType": "sexual",
"skills": [
"oral",
"empathy",
"focus"
]
},
{
"id": "cont_69_keep",
"label": "Continue the sixty-nine",
"tab": "Continue",
"setting": "private",
"cost": 4,
"minutes": 2,
"base": 82,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"continueState": "sixty_nine",
"stateDetail": "sixty_nine",
"heatBase": 13.5,
"desc": "Stable 69 continuation, balancing giving and receiving.",
"prefWeights": {
"sixty_nine": 0.6,
"giving_oral": 0.2,
"receiving_oral": 0.2
},
"skillWeights": {
"oral": 0.7,
"empathy": 0.15,
"focus": 0.15
},
"relationType": "sexual",
"skills": [
"oral",
"empathy",
"focus"
]
},
{
"id": "cont_69_focus_her",
"label": "Focus on her",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 76,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"continueState": "sixty_nine",
"stateDetail": "oral_receive",
"heatBase": 15.5,
"desc": "Focus more on giving oral while still staying in the 69 position.",
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"skillWeights": {
"oral": 0.65,
"focus": 0.2,
"empathy": 0.15
},
"relationType": "sexual",
"skills": [
"oral",
"focus",
"empathy"
]
},
{
"id": "cont_69_let_her_focus_you",
"label": "Let her focus on you",
"tab": "Continue",
"setting": "private",
"cost": 3,
"minutes": 2,
"base": 78,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"continueState": "sixty_nine",
"stateDetail": "oral_give",
"heatBase": 9.0,
"desc": "Let her mouth set the pace. This does not train the player's oral skill.",
"prefWeights": {
"giving_oral": 1.0
},
"skillWeights": {
"empathy": 0.25,
"focus": 0.25,
"dominance": 0.5
},
"relationType": "sexual",
"skills": [
"empathy",
"focus",
"dominance"
]
},
{
"id": "cont_69_grind",
"label": "Try to fuck her mouth",
"tab": "Continue",
"setting": "private",
"cost": 7,
"minutes": 2,
"base": 70,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"touch",
"risky"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"continueState": "sixty_nine",
"stateDetail": "sixty_nine",
"heatBase": 16.0,
"desc": "A riskier 69 variation, adding hips and pressure to the mutual oral rhythm.",
"prefWeights": {
"sixty_nine": 0.4,
"giving_oral": 0.4,
"touching": 0.2
},
"skillWeights": {
"teasing": 0.4,
"touching": 0.2,
"focus": 0.2,
"penetration": 0.2
},
"relationType": "sexual",
"skills": [
"teasing",
"touching",
"focus",
"penetration"
]
},
{
"id": "cont_69_to_sex",
"label": "Turn 69 into sex",
"tab": "Continue",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 46,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"risky",
"state_escalation"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": "hadSex",
"minStats": {},
"continueState": "sixty_nine",
"nextSexualState": "sex",
"stateDetail": "missionary",
"heatBase": 18.0,
"requiresPlayerUndressed": true,
"requiresClothing": [
"bottomOff",
"pantiesOff"
],
"desc": "Escalate from 69 to vaginal sex. Requires you naked and hard, and checks vaginal sensitivity.",
"activitySuccessCost": 6,
"prefWeights": {
"vaginal_sensitivity": 1.0
},
"skillWeights": {
"focus": 0.3,
"dominance": 0.3,
"penetration": 0.25,
"oral": 0.15
},
"relationType": "sexual",
"skills": [
"focus",
"dominance",
"penetration",
"oral"
]
},
{
"id": "cont_anal_slow",
"label": "Keep anal slow",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 80,
"limit": 99,
"pref": "anal_sensitivity",
"tags": [
"continue_state",
"private",
"sexual",
"anal"
],
"continueState": "anal",
"nextSexualState": null,
"heatBase": 12.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue anal slowly and carefully.",
"preserveStateDetail": true,
"skillWeights": {
"empathy": 0.6,
"anal": 0.4
},
"relationType": "sexual",
"skills": [
"empathy",
"anal"
]
},
{
"id": "cont_anal_doggy",
"label": "Continue anal doggy",
"tab": "Continue",
"setting": "private",
"cost": 8,
"minutes": 2,
"base": 68,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"anal"
],
"continueState": "anal",
"nextSexualState": null,
"stateDetail": "anal_doggy",
"heatBase": 17.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue anal in doggy position.",
"extraPrefs": [
"anal_sensitivity"
],
"prefWeights": {
"anal_sensitivity": 0.6,
"doggy": 0.4
},
"skillWeights": {
"anal": 0.7,
"focus": 0.15,
"dominance": 0.15
},
"relationType": "sexual",
"skills": [
"anal",
"focus",
"dominance"
]
},
{
"id": "cont_anal_missionary",
"label": "Continue anal missionary",
"tab": "Continue",
"setting": "private",
"cost": 7,
"minutes": 2,
"base": 72,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"anal"
],
"continueState": "anal",
"nextSexualState": null,
"stateDetail": "anal_missionary",
"heatBase": 14.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue anal in missionary position.",
"extraPrefs": [
"anal_sensitivity"
],
"prefWeights": {
"anal_sensitivity": 0.6,
"missionary": 0.4
},
"skillWeights": {
"anal": 0.7,
"empathy": 0.1,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"anal",
"empathy",
"focus"
]
},
{
"id": "cont_anal_cowgirl",
"label": "Continue anal cowgirl",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 70,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"submissive_position"
],
"continueState": "anal",
"nextSexualState": null,
"stateDetail": "anal_cowgirl",
"heatBase": 15.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue anal with her on top.",
"extraPrefs": [
"anal_sensitivity"
],
"prefWeights": {
"anal_sensitivity": 0.6,
"cowgirl": 0.4
},
"skillWeights": {
"anal": 0.45,
"empathy": 0.3,
"focus": 0.25
},
"relationType": "sexual",
"skills": [
"anal",
"empathy",
"focus"
]
},
{
"id": "cont_anal_reverse_cowgirl",
"label": "Continue anal reverse cowgirl",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 68,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"submissive_position"
],
"continueState": "anal",
"nextSexualState": null,
"stateDetail": "anal_reverse_cowgirl",
"heatBase": 16.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue anal with her riding you in reverse cowgirl.",
"extraPrefs": [
"anal_sensitivity"
],
"prefWeights": {
"anal_sensitivity": 0.6,
"reverse_cowgirl": 0.4
},
"skillWeights": {
"anal": 0.45,
"focus": 0.35,
"empathy": 0.2
},
"relationType": "sexual",
"skills": [
"anal",
"focus",
"empathy"
]
},
{
"id": "cont_anal_wall",
"label": "Continue anal against wall",
"tab": "Continue",
"setting": "private",
"cost": 11,
"minutes": 3,
"base": 62,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"risky",
"dominant_position"
],
"continueState": "anal",
"nextSexualState": null,
"stateDetail": "anal_wall",
"heatBase": 18.5,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Continue anal standing against the wall.",
"extraPrefs": [
"anal_sensitivity"
],
"prefWeights": {
"anal_sensitivity": 0.6,
"wall": 0.4
},
"skillWeights": {
"anal": 0.5,
"fitness": 0.25,
"dominance": 0.25
},
"relationType": "sexual",
"skills": [
"anal",
"fitness",
"dominance"
]
},
{
"id": "cont_anal_hold",
"label": "Hold still and let her adjust",
"tab": "Continue",
"setting": "private",
"cost": 4,
"minutes": 1,
"base": 86,
"limit": 99,
"pref": "anal_sensitivity",
"tags": [
"continue_state",
"private",
"sexual",
"anal"
],
"continueState": "anal",
"nextSexualState": null,
"heatBase": 7.0,
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "A careful anal continuation focused on control and comfort.",
"preserveStateDetail": true,
"skillWeights": {
"empathy": 0.6,
"anal": 0.4
},
"relationType": "sexual",
"skills": [
"empathy",
"anal"
]
},
{
"id": "cont_analingus_keep",
"label": "Keep licking her ass",
"tab": "Continue",
"setting": "private",
"cost": 4,
"minutes": 2,
"base": 76,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"analingus"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"continueState": "analingus",
"heatBase": 10.5,
"desc": "Stable analingus continuation. Uses oral skill and focus.",
"stateDetail": "analingus",
"prefWeights": {
"anal_sensitivity": 0.5,
"receiving_oral": 0.5
},
"skillWeights": {
"oral": 0.5,
"teasing": 0.111111,
"empathy": 0.166667,
"focus": 0.222222
},
"relationType": "sexual",
"skills": [
"oral",
"teasing",
"empathy",
"focus"
]
},
{
"id": "cont_analingus_slow",
"label": "Slow your tongue down and tease her",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 82,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"analingus",
"tease"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"continueState": "analingus",
"heatBase": 8.5,
"desc": "Careful teasing analingus continuation. Uses oral, empathy and teasing; teasing was already part of oral action scoring, now it is explicit in the action.",
"stateDetail": "analingus",
"prefWeights": {
"anal_sensitivity": 0.5,
"receiving_oral": 0.5
},
"skillWeights": {
"oral": 0.5,
"teasing": 0.111111,
"empathy": 0.166667,
"focus": 0.222222
},
"relationType": "sexual",
"skills": [
"oral",
"teasing",
"empathy",
"focus"
]
},
{
"id": "cont_analingus_circle",
"label": "Add your fingers while licking her ass",
"tab": "Continue",
"setting": "private",
"cost": 5,
"minutes": 2,
"base": 70,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"analingus",
"risky",
"touch"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"continueState": "analingus",
"heatBase": 15.0,
"desc": "Mixed analingus and fingering action. Uses Oral, Anal, and Touching skills, with anal sensitivity and arousal still mattering.",
"stateDetail": "analingus_fingers",
"prefWeights": {
"anal_sensitivity": 0.6,
"fingering": 0.4
},
"skillWeights": {
"oral": 0.4,
"anal": 0.3,
"touching": 0.3
},
"relationType": "sexual",
"skills": [
"oral",
"anal",
"touching"
]
},
{
"id": "cont_analingus_to_cunni",
"label": "Move your tongue back to her pussy",
"tab": "Continue",
"setting": "private",
"cost": 9,
"minutes": 2,
"base": 68,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"state_shift"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"continueState": "analingus",
"nextSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"heatBase": 11.5,
"desc": "Transition from analingus back to cunnilingus. It checks receiving-oral preference and your Oral and Focus skills rather than anal sex.",
"prefWeights": {
"receiving_oral": 0.85,
"vaginal_sensitivity": 0.15
},
"skillWeights": {
"oral": 0.8,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"oral",
"focus"
]
},
{
"id": "cont_analingus_to_anal",
"label": "Escalate from analingus to anal sex",
"tab": "Continue",
"setting": "private",
"cost": 6,
"minutes": 3,
"base": 22,
"limit": 99,
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"risky",
"state_escalation"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"continueState": "analingus",
"heatBase": 18.0,
"desc": "Escalate from analingus to anal sex. Requires you naked and hard, then checks anal sensitivity, not oral metrics.",
"nextSexualState": "anal",
"stateDetail": "anal_doggy",
"requiresPlayerUndressed": true,
"requiresClothing": [
"bottomOff",
"pantiesOff"
],
"activitySuccessCost": 6,
"prefWeights": {
"anal_sensitivity": 1.0
},
"skillWeights": {
"anal": 0.55,
"empathy": 0.25,
"focus": 0.2
},
"relationType": "sexual",
"skills": [
"anal",
"empathy",
"focus"
]
},
{
"id": "come_body",
"label": "Come on her body",
"tab": "Climax",
"setting": "private",
"cost": 0,
"minutes": 3,
"base": 72,
"limit": 99,
"tags": [
"climax",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "External body finish. Uses a blended preference: legs 50%, ass 25%, breasts 25%.",
"climaxTarget": "body",
"requiresSexualState": null,
"requiresPlayerDressed": false,
"prefWeights": {
"legs_sensitivity": 0.5,
"ass_sensitivity": 0.25,
"breast_sensitivity": 0.25
},
"skillWeights": {
"focus": 0.45,
"dominance": 0.35,
"empathy": 0.2
},
"relationType": "sexual",
"skills": [
"focus",
"dominance",
"empathy"
]
},
{
"id": "come_back",
"label": "Come on her ass",
"tab": "Climax",
"setting": "private",
"cost": 0,
"minutes": 3,
"base": 70,
"limit": 99,
"pref": "ass_sensitivity",
"tags": [
"climax",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "External climax choice matching the ass-focused finish image.",
"climaxTarget": "back",
"requiresSexualState": null,
"requiresPlayerDressed": false,
"skillWeights": {
"focus": 0.45,
"dominance": 0.35,
"empathy": 0.2
},
"relationType": "sexual",
"skills": [
"focus",
"dominance",
"empathy"
]
},
{
"id": "come_boobs",
"label": "Come on her tits",
"tab": "Climax",
"setting": "private",
"cost": 0,
"minutes": 3,
"base": 70,
"limit": 99,
"pref": "breast_sensitivity",
"tags": [
"climax",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "External climax choice matching the tits image and checking breast sensitivity.",
"climaxTarget": "boobs",
"requiresSexualState": null,
"requiresPlayerDressed": false,
"skillWeights": {
"focus": 0.45,
"dominance": 0.35,
"empathy": 0.2
},
"relationType": "sexual",
"skills": [
"focus",
"dominance",
"empathy"
]
},
{
"id": "come_face",
"label": "Come on her face",
"tab": "Climax",
"setting": "private",
"cost": 0,
"minutes": 3,
"base": 38,
"limit": 99,
"tags": [
"climax",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Harder dominance based external finish matching the facial image.",
"climaxTarget": "face",
"requiresSexualState": null,
"requiresPlayerDressed": false,
"skillWeights": {
"focus": 0.45,
"dominance": 0.35,
"empathy": 0.2
},
"relationType": "sexual",
"skills": [
"focus",
"dominance",
"empathy"
]
},
{
"id": "come_mouth",
"label": "Come in her mouth",
"tab": "Climax",
"setting": "private",
"cost": 0,
"minutes": 3,
"base": 26,
"limit": 99,
"tags": [
"climax",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Hard oral finish. Requires blowjob, 69, or titfuck immediately after she licks the tip.",
"climaxTarget": "mouth",
"requiresSexualState": "blowjob,sixty_nine",
"requiresPlayerDressed": false,
"prefWeights": {
"giving_oral": 0.5,
"swallowing": 0.5
},
"skillWeights": {
"focus": 0.4,
"empathy": 0.3,
"dominance": 0.3
},
"relationType": "sexual",
"skills": [
"focus",
"empathy",
"dominance"
]
},
{
"id": "come_public_hand",
"label": "Come in her hand",
"tab": "Climax",
"setting": "any",
"publicOnly": true,
"cost": 0,
"minutes": 2,
"base": 100,
"limit": 99,
"tags": [
"climax",
"public",
"sexual",
"handjob"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Finish into her hidden hand during the public handjob. This public finish appears in the public recap and counts as coming in her hand.",
"climaxTarget": "hands",
"requiresSexualState": "public_handjob",
"requiresPlayerDressed": true,
"prefWeights": {
"handjob": 0.7,
"exhibitionism": 0.3
},
"alwaysSuccess": true,
"relationType": "none"
},
{
"id": "come_inside",
"label": "Come inside her pussy",
"tab": "Climax",
"setting": "private",
"cost": 0,
"minutes": 3,
"base": 22,
"limit": 99,
"pref": "vaginal_sensitivity",
"tags": [
"climax",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Very hard. Requires active vaginal sex state, checks vaginal sensitivity, and uses the creampie image.",
"climaxTarget": "inside",
"requiresSexualState": "sex",
"requiresPlayerDressed": false,
"skillWeights": {
"focus": 0.45,
"empathy": 0.35,
"dominance": 0.2
},
"relationType": "sexual",
"skills": [
"focus",
"empathy",
"dominance"
]
},
{
"id": "come_inside_ass",
"label": "Come inside her ass",
"tab": "Climax",
"setting": "private",
"cost": 0,
"minutes": 3,
"base": 32,
"limit": 99,
"pref": "anal_sensitivity",
"tags": [
"climax",
"private",
"sexual"
],
"unique": null,
"movePrivate": false,
"needs": {},
"interest": null,
"requiresFlags": [],
"setsFlag": null,
"minStats": {},
"desc": "Hard. Requires anal already in progress and uses the cum anal image.",
"climaxTarget": "inside_ass",
"requiresSexualState": "anal",
"requiresPlayerDressed": false,
"skillWeights": {
"focus": 0.45,
"empathy": 0.35,
"dominance": 0.2
},
"relationType": "sexual",
"skills": [
"focus",
"empathy",
"dominance"
]
}
]
END_DATA_ACTIONS %/
/% ACTION_BALANCE_DATABASE
{
"_note": [],
"version": 1,
"supportedCapModes": {
"lustMin": "cap = clamp(max(min, lust), min, max)",
"lustAfterThreshold": "cap = lust if lust is above threshold, otherwise min"
},
"globalNotes": {},
"actions": {
"introduce": {
"_label": "Friendly introduction",
"baseChance": 100,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 2,
"tab": "Talk",
"tags": [
"safe",
"social",
"intro",
"friendly"
],
"skills": [
"charm"
]
},
"introduce_dominant": {
"_label": "Dominant introduction",
"baseChance": 100,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 2,
"tab": "Talk",
"tags": [
"safe",
"intro",
"dominant"
],
"skills": [
"dominance"
]
},
"talk_cooking": {
"_label": "Talk about food and cooking",
"baseChance": 62,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 10,
"tab": "Talk",
"tags": [
"safe",
"social"
],
"skills": [
"cooking",
"charm"
]
},
"talk_sports": {
"_label": "Talk about sports and fitness",
"baseChance": 62,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 10,
"tab": "Talk",
"tags": [
"safe",
"social"
],
"skills": [
"sports",
"fitness"
]
},
"talk_computers": {
"_label": "Talk about computers",
"baseChance": 60,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 10,
"tab": "Talk",
"tags": [
"safe",
"social"
],
"skills": [
"informatic",
"intelligence"
]
},
"talk_finance": {
"_label": "Talk about money and ambition",
"baseChance": 58,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 10,
"tab": "Talk",
"tags": [
"safe",
"social"
],
"skills": [
"finance",
"hustle"
]
},
"talk_art": {
"_label": "Talk about art and taste",
"baseChance": 62,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 10,
"tab": "Talk",
"tags": [
"safe",
"social"
],
"skills": [
"art",
"intelligence"
]
},
"talk_photography": {
"_label": "Talk about photography",
"baseChance": 60,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 10,
"tab": "Talk",
"tags": [
"safe",
"social"
],
"skills": [
"photography",
"charm"
]
},
"talk_massage": {
"_label": "Talk about massage and relaxation",
"baseChance": 56,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 10,
"tab": "Talk",
"tags": [
"safe",
"social"
],
"skills": [
"intelligence",
"empathy"
],
"pref": "massage"
},
"talk_music": {
"_label": "Talk about music",
"baseChance": 64,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 10,
"tab": "Talk",
"tags": [
"safe",
"social"
],
"skills": [
"music",
"intelligence"
]
},
"invite_coffee": {
"_label": "Invite her for coffee",
"baseChance": 44,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 5,
"tab": "Talk",
"tags": [
"date"
],
"skills": [
"charm",
"empathy"
]
},
"invite_workout": {
"_label": "Invite her to train together",
"baseChance": 40,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 5,
"tab": "Talk",
"tags": [
"date"
],
"skills": [
"sports",
"fitness",
"charm"
]
},
"invite_gallery": {
"_label": "Invite her to a gallery walk",
"baseChance": 40,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 5,
"tab": "Talk",
"tags": [
"date"
],
"skills": [
"art",
"photography",
"charm"
]
},
"invite_room": {
"_label": "Invite her to your home",
"baseChance": 16,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 5,
"tab": "Talk",
"tags": [
"private"
],
"skills": [
"charm",
"willpower"
]
},
"invite_private_movie": {
"_label": "Invite her home for a private movie",
"baseChance": 22,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 5,
"tab": "Talk",
"tags": [
"private",
"social",
"date"
],
"skills": [
"charm",
"willpower"
]
},
"invite_meal": {
"_label": "Invite her for a meal",
"baseChance": 18,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 5,
"tab": "Talk",
"tags": [
"private",
"social",
"date",
"meal"
],
"skills": [
"cooking"
]
},
"say_goodbye": {
"_label": "End interaction",
"baseChance": 100,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 0,
"tab": "Talk",
"tags": [
"utility"
]
},
"compliment_style": {
"_label": "Compliment her style",
"baseChance": 62,
"chanceLimit": 2,
"energyCost": 1,
"minutes": 1,
"tab": "Flirt",
"tags": [
"social"
],
"skills": [
"charm",
"empathy"
],
"noHeat": true
},
"look_eyes": {
"_label": "Hold eye contact",
"baseChance": 62,
"chanceLimit": 1,
"energyCost": 1,
"minutes": 1,
"tab": "Flirt",
"tags": [
"gaze",
"heat",
"arousal"
],
"skills": [
"willpower",
"focus",
"teasing"
],
"skillWeights": {
"willpower": 0.6,
"focus": 0.2,
"teasing": 0.2
},
"girlArousalBase": 0.7,
"girlArousalClamp": [
0.3,
1.2
],
"girlArousalCap": 25
},
"admire_outfit": {
"_label": "Admire her outfit openly",
"baseChance": 56,
"chanceLimit": 1,
"energyCost": 1,
"minutes": 1,
"tab": "Flirt",
"tags": [
"gaze",
"heat",
"arousal"
],
"skills": [
"willpower",
"focus",
"teasing"
],
"skillWeights": {
"willpower": 0.6,
"focus": 0.2,
"teasing": 0.2
},
"girlArousalBase": 0.85,
"girlArousalClamp": [
0.4,
1.3
],
"playerArousalBase": 0.25,
"playerArousalCap": 30,
"girlArousalCap": 25
},
"gaze_chest": {
"_label": "Look at her chest",
"baseChance": 30,
"chanceLimit": 1,
"energyCost": 1,
"minutes": 1,
"tab": "Flirt",
"tags": [
"gaze",
"pervy",
"heat",
"arousal"
],
"skills": [
"willpower",
"focus",
"teasing"
],
"skillWeights": {
"willpower": 0.6,
"focus": 0.2,
"teasing": 0.2
},
"pref": "breast_sensitivity",
"girlArousalBase": 1.0,
"girlArousalClamp": [
0.4,
1.6
],
"playerArousalBase": 0.45,
"playerArousalCap": 30,
"girlArousalCap": 25
},
"gaze_legs": {
"_label": "Look at her legs",
"baseChance": 34,
"chanceLimit": 1,
"energyCost": 1,
"minutes": 1,
"tab": "Flirt",
"tags": [
"gaze",
"pervy",
"heat",
"arousal"
],
"skills": [
"willpower",
"focus",
"teasing"
],
"skillWeights": {
"willpower": 0.6,
"focus": 0.2,
"teasing": 0.2
},
"pref": "legs_sensitivity",
"girlArousalBase": 0.8,
"girlArousalClamp": [
0.4,
1.4
],
"playerArousalBase": 0.35,
"playerArousalCap": 30,
"girlArousalCap": 25
},
"gaze_ass": {
"_label": "Look at her ass",
"baseChance": 28,
"chanceLimit": 1,
"energyCost": 1,
"minutes": 1,
"tab": "Flirt",
"tags": [
"gaze",
"pervy",
"heat",
"arousal"
],
"skills": [
"willpower",
"focus",
"teasing"
],
"skillWeights": {
"willpower": 0.6,
"focus": 0.2,
"teasing": 0.2
},
"pref": "ass_sensitivity",
"girlArousalBase": 1.1,
"girlArousalClamp": [
0.5,
1.8
],
"playerArousalBase": 0.5,
"playerArousalCap": 30,
"girlArousalCap": 25
},
"flirt_soft": {
"_label": "Light flirt",
"baseChance": 50,
"chanceLimit": 3,
"energyCost": 1,
"minutes": 1,
"tab": "Flirt",
"tags": [
"flirt",
"heat",
"arousal"
],
"skills": [
"charm",
"willpower"
],
"girlArousalBase": 1.0,
"girlArousalClamp": [
0.4,
1.5
],
"playerArousalBase": 0.3,
"playerArousalCap": 30,
"girlArousalCap": 25
},
"flirt_bold": {
"_label": "Bold flirt",
"baseChance": 35,
"chanceLimit": 3,
"energyCost": 2,
"minutes": 1,
"tab": "Flirt",
"tags": [
"flirt",
"arousal",
"risky",
"heat"
],
"skills": [
"charm",
"willpower"
],
"girlArousalBase": 2.2,
"playerArousalBase": 1.0,
"girlArousalClamp": [
0.8,
3.2
],
"playerArousalCap": 30,
"girlArousalCap": 25
},
"tease_words": {
"_label": "Suggestive teasing",
"baseChance": 32,
"chanceLimit": 3,
"energyCost": 2,
"minutes": 1,
"tab": "Flirt",
"tags": [
"flirt",
"arousal",
"pervy",
"risky",
"heat"
],
"skills": [
"teasing",
"willpower"
],
"girlArousalBase": 4.0,
"playerArousalBase": 2.2,
"girlArousalClamp": [
1.4,
5.0
],
"playerArousalCap": 30,
"girlArousalCap": 25
},
"whisper_dirty": {
"_label": "Whisper something dirty",
"baseChance": 32,
"chanceLimit": 1,
"energyCost": 2,
"minutes": 1,
"tab": "Flirt",
"tags": [
"pervy",
"risky",
"heat",
"arousal"
],
"skills": [
"teasing",
"willpower",
"charm"
],
"girlArousalBase": 2.8,
"girlArousalClamp": [
1.0,
4.0
],
"playerArousalBase": 1.6,
"playerArousalCap": 30,
"girlArousalCap": 25
},
"touch_hand": {
"_label": "Touch her hand",
"baseChance": 86,
"chanceLimit": 3,
"energyCost": 1,
"minutes": 1,
"tab": "Touch",
"tags": [
"touch"
],
"skills": [
"touching",
"empathy"
],
"pref": "touching",
"girlArousalBase": 1.0,
"girlArousalClamp": [
0.4,
1.4
]
},
"touch_arm": {
"_label": "Touch her arm",
"baseChance": 72,
"chanceLimit": 3,
"energyCost": 2,
"minutes": 1,
"tab": "Touch",
"tags": [
"touch"
],
"skills": [
"touching",
"empathy"
],
"pref": "touching",
"girlArousalBase": 1.25,
"girlArousalClamp": [
0.6,
1.8
]
},
"hug_her": {
"_label": "Hug her",
"baseChance": 47,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Touch",
"tags": [
"touch"
],
"skills": [
"touching",
"empathy"
],
"pref": "touching",
"girlArousalBase": 1.9,
"girlArousalClamp": [
1.0,
2.5
]
},
"massage_start": {
"_label": "Offer a massage",
"baseChance": 37,
"chanceLimit": 2,
"energyCost": 5,
"minutes": 5,
"tab": "Touch",
"tags": [
"massage",
"private",
"social"
],
"skills": [
"massage",
"empathy"
],
"pref": "massage",
"girlArousalBase": 1.0
},
"use_massage_oil": {
"_label": "Use massage oil",
"baseChance": 100,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 1,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"utility",
"item"
],
"pref": "massage"
},
"stop_massage": {
"_label": "Stop the massage",
"baseChance": 100,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 1,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"utility"
],
"pref": "massage",
"note": "Utility action. Ends active massage without stat farming, heat gain, or sexual escalation."
},
"massage_shoulders": {
"_label": "Massage her shoulders",
"baseChance": 33,
"chanceLimit": 2,
"energyCost": 6,
"minutes": 5,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch"
],
"skills": [
"massage",
"touching",
"empathy"
],
"pref": "massage",
"girlArousalBase": 1.2
},
"massage_neck": {
"_label": "Massage her neck",
"baseChance": 29,
"chanceLimit": 3,
"energyCost": 6,
"minutes": 5,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch"
],
"skills": [
"massage",
"empathy",
"focus"
],
"pref": "massage",
"girlArousalBase": 1.2
},
"massage_back": {
"_label": "Massage her back",
"baseChance": 27,
"chanceLimit": 3,
"energyCost": 6,
"minutes": 5,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch"
],
"skills": [
"massage",
"empathy",
"fitness"
],
"pref": "massage",
"girlArousalBase": 1.2
},
"massage_lower_back": {
"_label": "Massage her lower back",
"baseChance": 18,
"chanceLimit": 2,
"energyCost": 6,
"minutes": 5,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch",
"risky"
],
"skills": [
"massage",
"touching",
"empathy"
],
"pref": "massage",
"girlArousalBase": 3.7,
"playerArousalBase": 2.6
},
"massage_breasts": {
"_label": "Massage her breasts",
"baseChance": 14,
"chanceLimit": 2,
"energyCost": 6,
"minutes": 3,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky"
],
"skills": [
"massage",
"touching",
"empathy"
],
"pref": "breast_sensitivity",
"girlArousalBase": 5.8,
"playerArousalBase": 2.6
},
"massage_ass": {
"_label": "Massage her ass cheeks",
"baseChance": 15,
"chanceLimit": 2,
"energyCost": 6,
"minutes": 3,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky"
],
"skills": [
"massage",
"touching",
"empathy"
],
"pref": "ass_sensitivity",
"girlArousalBase": 6.4,
"playerArousalBase": 2.6
},
"massage_legs": {
"_label": "Massage her legs",
"baseChance": 24,
"chanceLimit": 2,
"energyCost": 6,
"minutes": 5,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch"
],
"skills": [
"massage",
"touching",
"empathy"
],
"pref": "legs_sensitivity",
"girlArousalBase": 2.2
},
"massage_inner_thighs": {
"_label": "Massage her inner thighs",
"baseChance": 13,
"chanceLimit": 2,
"energyCost": 6,
"minutes": 3,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky"
],
"skills": [
"massage",
"touching",
"teasing"
],
"pref": "legs_sensitivity",
"girlArousalBase": 7.2,
"playerArousalBase": 3.0
},
"massage_vagina": {
"_label": "Rub her vagina as part of the massage",
"baseChance": 4,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 3,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky"
],
"skills": [
"massage",
"touching",
"teasing",
"empathy"
],
"pref": "vaginal_sensitivity",
"girlArousalBase": 10.0,
"playerArousalBase": 4.0
},
"massage_pussy_fabric": {
"_label": "Massage her pussy through clothes",
"baseChance": 10,
"chanceLimit": 99,
"energyCost": 4,
"minutes": 3,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky",
"fabric"
],
"skills": [
"massage",
"touching",
"teasing"
],
"pref": "fingering",
"girlArousalBase": 8.0,
"playerArousalBase": 3.4
},
"massage_pussy_bare": {
"_label": "Massage her bare pussy",
"baseChance": 8,
"chanceLimit": 99,
"energyCost": 4,
"minutes": 3,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch",
"sexual",
"risky"
],
"skills": [
"massage",
"touching",
"teasing"
],
"startsSexualState": "fingering",
"stateDetail": "fingering",
"girlArousalBase": 12.0,
"playerArousalBase": 4.0
},
"massage_tongue_ass": {
"_label": "Surprise her with your tongue on her asshole",
"baseChance": 5,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 3,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch",
"sexual",
"oral",
"anal",
"analingus",
"risky"
],
"skills": [
"massage",
"oral",
"empathy",
"teasing"
],
"pref": "anal_sensitivity",
"startsSexualState": "analingus",
"stateDetail": "analingus",
"girlArousalBase": 16.0,
"playerArousalBase": 5.0
},
"massage_tongue_pussy": {
"_label": "Surprise her with your tongue on her pussy",
"baseChance": 6,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 3,
"tab": "MassageFlow",
"tags": [
"massage",
"private",
"touch",
"sexual",
"oral",
"risky"
],
"skills": [
"massage",
"oral",
"teasing",
"focus"
],
"pref": "receiving_oral",
"startsSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"girlArousalBase": 16.0,
"playerArousalBase": 4.5
},
"kiss_cheek": {
"_label": "Kiss her cheek",
"baseChance": 53,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 1,
"tab": "Touch",
"tags": [
"kiss",
"heat",
"arousal"
],
"skills": [
"kissing",
"charm"
],
"pref": "kissing",
"girlArousalBase": 1.6,
"playerArousalBase": 0.6,
"girlArousalClamp": [
0.8,
2.4
],
"girlArousalCap": 18,
"playerArousalCap": 30
},
"kiss_lips": {
"_label": "Kiss her lips",
"baseChance": 29,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 1,
"tab": "Touch",
"tags": [
"kiss",
"risky",
"heat",
"arousal"
],
"skills": [
"kissing",
"charm"
],
"pref": "kissing",
"girlArousalBase": 3.2,
"playerArousalBase": 2.6,
"girlArousalClamp": [
1.8,
4.6
],
"girlArousalCap": 35,
"playerArousalCap": 50
},
"deep_kiss": {
"_label": "Deep kiss",
"baseChance": 22,
"chanceLimit": 3,
"energyCost": 6,
"minutes": 2,
"tab": "Touch",
"tags": [
"kiss",
"risky",
"heat",
"arousal"
],
"skills": [
"kissing",
"teasing"
],
"pref": "kissing",
"girlArousalBase": 5.2,
"playerArousalBase": 4.6,
"girlArousalClamp": [
3.0,
7.0
],
"girlArousalCap": 50,
"playerArousalCap": 65
},
"suck_nipples": {
"_label": "Suck her nipples",
"baseChance": 31,
"chanceLimit": 2,
"energyCost": 5,
"minutes": 2,
"tab": "Petting",
"tags": [
"oral_light",
"private",
"sexual"
],
"skills": [
"oral",
"teasing"
],
"pref": "breast_sensitivity",
"girlArousalBase": 4.4,
"playerArousalBase": 5.8,
"girlArousalClamp": [
2.7,
5.0
],
"girlArousalCap": {
"mode": "lustMin",
"min": 30,
"max": 100
}
},
"caress_thigh": {
"_label": "Caress her thigh",
"baseChance": 32,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Petting",
"tags": [
"petting",
"touch",
"sexual"
],
"skills": [
"touching",
"teasing"
],
"pref": "legs_sensitivity",
"girlArousalBase": 1.0,
"playerArousalBase": 0.7,
"playerArousalCap": 30
},
"pet_over_clothes": {
"_label": "Caress her through her clothes",
"baseChance": 30,
"chanceLimit": 4,
"energyCost": 3,
"minutes": 1,
"tab": "Petting",
"tags": [
"petting",
"touch",
"sexual",
"risky"
],
"skills": [
"touching",
"teasing"
],
"pref": "touching",
"girlArousalBase": 1.0,
"playerArousalBase": 0.7,
"playerArousalCap": 30
},
"rub_breasts_fabric": {
"_label": "Rub her tits through her clothes",
"baseChance": 29,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Petting",
"tags": [
"petting",
"touch",
"sexual",
"fabric"
],
"skills": [
"touching",
"massage"
],
"pref": "breast_sensitivity",
"girlArousalBase": 1.1,
"playerArousalBase": 0.7,
"playerArousalCap": 30,
"label": "Rub her tits through her clothes"
},
"rub_pussy_fabric": {
"_label": "Rub her pussy through fabric",
"baseChance": 14,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Petting",
"tags": [
"petting",
"touch",
"sexual",
"fabric",
"risky"
],
"skills": [
"touching",
"teasing"
],
"pref": "fingering",
"actionHeatBase": 8.0,
"startsSexualState": "rubbing",
"stateDetail": "rubbing",
"girlArousalBase": 6.0,
"playerArousalBase": 2.8,
"playerArousalCap": 30
},
"finger_pussy": {
"_label": "Try to finger her pussy",
"baseChance": 8,
"chanceLimit": 2,
"energyCost": 6,
"minutes": 3,
"tab": "Petting",
"tags": [
"petting",
"touch",
"private",
"sexual",
"risky"
],
"skills": [
"touching",
"teasing"
],
"pref": "fingering",
"startsSexualState": "fingering",
"stateDetail": "fingering",
"girlArousalBase": 9.0,
"playerArousalBase": 8.0
},
"grind_together": {
"_label": "Grind against her",
"baseChance": 8,
"chanceLimit": 3,
"energyCost": 7,
"minutes": 3,
"tab": "Petting",
"tags": [
"petting",
"touch",
"private",
"sexual",
"risky"
],
"skills": [
"teasing",
"touching",
"fitness"
],
"girlArousalBase": 8.0,
"playerArousalBase": 4.5
},
"try_slip_inside": {
"_label": "Try to slip it inside",
"baseChance": 3,
"chanceLimit": 1,
"energyCost": 9,
"minutes": 2,
"tab": "Petting",
"tags": [
"petting",
"private",
"sexual",
"sex",
"risky",
"slip_inside"
],
"skills": [
"penetration",
"teasing",
"focus"
],
"pref": "vaginal_sensitivity",
"startsSexualState": "sex",
"stateDetail": "missionary",
"girlArousalBase": 15.0,
"playerArousalBase": 20.0
},
"anal_talk": {
"_label": "Talk about anal",
"baseChance": 16,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 10,
"tab": "Talk",
"tags": [
"anal",
"social"
],
"skills": [
"anal",
"empathy"
],
"pref": "anal_sensitivity",
"girlArousalBase": 1.2
},
"finger_ass": {
"_label": "Finger her ass",
"baseChance": 10,
"chanceLimit": 2,
"energyCost": 7,
"minutes": 3,
"tab": "Petting",
"tags": [
"anal",
"private",
"sexual"
],
"skills": [
"anal",
"touching"
],
"pref": "anal_sensitivity",
"startsSexualState": "anal_fingering",
"stateDetail": "anal_fingering",
"girlArousalBase": 11.0,
"playerArousalBase": 6.0
},
"cont_anal_finger_keep": {
"_label": "Keep fingering her ass",
"baseChance": 80,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"touch"
],
"skills": [
"anal",
"touching",
"focus"
],
"pref": "anal_sensitivity",
"actionHeatBase": 10.0,
"continueState": "anal_fingering",
"stateDetail": "anal_fingering",
"girlArousalBase": 9.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 4.0,
"_playerArousalBaseNote": "Manual analogue of vaginal fingering, with anal preference and skills."
},
"cont_anal_finger_to_fingering": {
"_label": "Switch to fingering her pussy",
"baseChance": 72,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"touch",
"state_shift"
],
"skills": [
"touching",
"focus",
"empathy"
],
"pref": "fingering",
"actionHeatBase": 13.0,
"continueState": "anal_fingering",
"nextSexualState": "fingering",
"stateDetail": "fingering",
"girlArousalBase": 12.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 4.5,
"_playerArousalBaseNote": "Transition into the existing vaginal fingering state."
},
"cont_anal_finger_to_analingus": {
"_label": "Move your mouth to her ass",
"baseChance": 50,
"chanceLimit": 3,
"energyCost": 5,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"anal",
"analingus",
"risky",
"state_shift"
],
"skills": [
"oral",
"anal",
"empathy",
"focus"
],
"pref": "anal_sensitivity",
"actionHeatBase": 14.0,
"continueState": "anal_fingering",
"nextSexualState": "analingus",
"stateDetail": "analingus",
"girlArousalBase": 14.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 6.0,
"_playerArousalBaseNote": "Harder anal transition, limited to three attempts per encounter."
},
"ask_about_schedule": {
"_label": "Ask about her schedule",
"baseChance": 52,
"chanceLimit": 1,
"energyCost": 2,
"minutes": 10,
"tab": "Ask-beg",
"tags": [
"safe",
"social",
"knowledge",
"routine"
],
"skills": [
"empathy",
"intelligence",
"charm"
]
},
"ask_number": {
"_label": "Ask for her number",
"baseChance": 42,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 3,
"tab": "Ask-beg",
"tags": [
"social"
],
"skills": [
"charm",
"empathy"
]
},
"ask_address": {
"_label": "Ask for her address",
"baseChance": 10,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 5,
"tab": "Ask-beg",
"tags": [
"safe",
"social",
"knowledge",
"address"
],
"skills": [
"charm",
"intelligence",
"willpower"
]
},
"ask_blowjob": {
"_label": "Ask for a blowjob",
"baseChance": 12,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 1,
"tab": "Ask-beg",
"tags": [
"receiving_oral",
"private",
"sexual",
"ask_beg",
"permission"
],
"skills": [
"charm",
"teasing"
],
"pref": "giving_oral",
"startsSexualState": "blowjob",
"stateDetail": "oral_give",
"girlArousalBase": 5.0,
"playerArousalBase": 16.0,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"ask_handjob": {
"_label": "Ask for a handjob",
"baseChance": 15,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 1,
"tab": "Ask-beg",
"tags": [
"handjob",
"private",
"sexual",
"ask_beg",
"permission"
],
"skills": [
"charm",
"teasing",
"empathy"
],
"pref": "handjob",
"startsSexualState": "handjob",
"stateDetail": "handjob",
"playerArousalBase": 8.5,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12,
"girlArousalBase": 3.2
},
"ask_footjob": {
"_label": "Ask for a footjob",
"baseChance": 17,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 1,
"tab": "Ask-beg",
"tags": [
"footjob",
"private",
"sexual",
"ask_beg",
"permission"
],
"skills": [
"charm",
"teasing",
"empathy"
],
"pref": "legs_sensitivity",
"actionHeatBase": 6.4,
"startsSexualState": "footjob",
"stateDetail": "footjob",
"girlArousalBase": 4.8,
"playerArousalBase": 9.0,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.55,
"girlArousalCap": {
"mode": "lustAfterThreshold",
"min": 30,
"threshold": 50,
"max": 100
}
},
"ask_titfuck": {
"_label": "Ask for a titfuck",
"baseChance": 13,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 2,
"tab": "Ask-beg",
"tags": [
"titfuck",
"breast",
"private",
"sexual",
"ask_beg",
"permission"
],
"skills": [
"charm",
"teasing",
"focus"
],
"skillWeights": {
"charm": 0.35,
"teasing": 0.4,
"focus": 0.25
},
"pref": "breast_sex",
"extraPrefs": [
"breast_sensitivity"
],
"prefWeights": {
"breast_sex": 0.78,
"breast_sensitivity": 0.22
},
"actionHeatBase": 7.4,
"startsSexualState": "titfuck",
"stateDetail": "titfuck",
"girlArousalBase": 4.0,
"playerArousalBase": 9.8,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.55,
"girlArousalCap": {
"mode": "lustMin",
"min": 50,
"max": 100
}
},
"ask_permission_finger": {
"_label": "Ask permission to finger her",
"baseChance": 7,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 1,
"tab": "Ask-beg",
"tags": [
"petting",
"touch",
"private",
"sexual",
"ask_beg",
"permission"
],
"skills": [
"charm",
"touching",
"empathy"
],
"pref": "fingering",
"startsSexualState": "fingering",
"stateDetail": "fingering",
"girlArousalBase": 8.0,
"playerArousalBase": 8.0
},
"ask_permission_oral": {
"_label": "Ask to perform oral",
"baseChance": 14,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 1,
"tab": "Ask-beg",
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"permission"
],
"skills": [
"charm",
"oral",
"empathy"
],
"pref": "receiving_oral",
"startsSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"girlArousalBase": 14.0,
"playerArousalBase": 9.0
},
"ask_sex": {
"_label": "Ask for sex",
"baseChance": 8,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 2,
"tab": "Ask-beg",
"tags": [
"sex",
"private",
"sexual",
"ask_beg",
"permission"
],
"skills": [
"charm",
"penetration",
"empathy"
],
"pref": "vaginal_sensitivity",
"startsSexualState": "sex",
"stateDetail": "missionary",
"girlArousalBase": 20.0,
"playerArousalBase": 18.0
},
"ask_anal_sex": {
"_label": "Ask for anal sex",
"baseChance": 5,
"chanceLimit": 1,
"energyCost": 2,
"minutes": 2,
"tab": "Ask-beg",
"tags": [
"anal",
"private",
"sexual",
"ask_beg",
"permission"
],
"skills": [
"charm",
"anal",
"empathy"
],
"pref": "anal_sensitivity",
"startsSexualState": "anal",
"stateDetail": "anal_missionary",
"girlArousalBase": 15.0,
"playerArousalBase": 20.0
},
"sit_on_face": {
"_label": "Ask her to sit on your face",
"baseChance": 9,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 2,
"tab": "Ask-beg",
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"permission"
],
"skills": [
"oral",
"willpower"
],
"pref": "receiving_oral",
"startsSexualState": "cunnilingus",
"stateDetail": "facesitting",
"girlArousalBase": 14.0,
"playerArousalBase": 10.5
},
"sixty_nine": {
"_label": "Ask for 69",
"baseChance": 12,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 2,
"tab": "Ask-beg",
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"permission"
],
"skills": [
"oral",
"teasing"
],
"pref": "sixty_nine",
"actionHeatBase": 14.0,
"startsSexualState": "sixty_nine",
"stateDetail": "sixty_nine",
"girlArousalBase": 16.0,
"playerArousalBase": 12.5
},
"beg_cunnilingus": {
"_label": "Beg her to sit on your face",
"baseChance": 5,
"chanceLimit": 2,
"energyCost": 5,
"minutes": 1,
"tab": "Ask-beg",
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"beg"
],
"skills": [
"empathy",
"charm",
"teasing"
],
"pref": "receiving_oral",
"startsSexualState": "cunnilingus",
"stateDetail": "facesitting",
"girlArousalBase": 7.0,
"playerArousalBase": 9.0
},
"beg_sixty_nine": {
"_label": "Beg for 69",
"baseChance": 8,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Ask-beg",
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"beg"
],
"skills": [
"empathy",
"charm",
"teasing"
],
"pref": "sixty_nine",
"actionHeatBase": 14.0,
"startsSexualState": "sixty_nine",
"stateDetail": "sixty_nine",
"girlArousalBase": 9.0,
"playerArousalBase": 12.5
},
"beg_anal_sex": {
"_label": "Beg for anal sex",
"baseChance": 0,
"chanceLimit": 1,
"energyCost": 3,
"minutes": 2,
"tab": "Ask-beg",
"tags": [
"anal",
"private",
"sexual",
"ask_beg",
"beg"
],
"skills": [
"empathy",
"charm",
"teasing"
],
"pref": "anal_sensitivity",
"startsSexualState": "anal",
"stateDetail": "anal_cowgirl",
"girlArousalBase": 6.0,
"playerArousalBase": 20.0
},
"beg_sex": {
"_label": "Beg for sex",
"baseChance": 1,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 2,
"tab": "Ask-beg",
"tags": [
"sex",
"private",
"sexual",
"ask_beg",
"beg"
],
"skills": [
"empathy",
"charm",
"teasing"
],
"pref": "vaginal_sensitivity",
"startsSexualState": "sex",
"stateDetail": "cowgirl",
"girlArousalBase": 10.0,
"playerArousalBase": 18.0
},
"beg_blowjob": {
"_label": "Beg for a blowjob",
"baseChance": 4,
"chanceLimit": 2,
"energyCost": 2,
"minutes": 1,
"tab": "Ask-beg",
"tags": [
"receiving_oral",
"private",
"sexual",
"ask_beg",
"beg"
],
"skills": [
"empathy",
"charm",
"teasing"
],
"pref": "giving_oral",
"startsSexualState": "blowjob",
"stateDetail": "oral_give",
"girlArousalBase": 5.5,
"playerArousalBase": 16.0,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"beg_handjob": {
"_label": "Beg for a handjob",
"baseChance": 8,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Ask-beg",
"tags": [
"handjob",
"private",
"sexual",
"ask_beg",
"beg"
],
"skills": [
"empathy",
"charm",
"teasing"
],
"pref": "handjob",
"startsSexualState": "handjob",
"stateDetail": "handjob",
"playerArousalBase": 8.5,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12,
"girlArousalBase": 1.2
},
"beg_footjob": {
"_label": "Beg for a footjob",
"baseChance": 13,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Ask-beg",
"tags": [
"footjob",
"private",
"sexual",
"ask_beg",
"beg"
],
"skills": [
"empathy",
"charm",
"teasing"
],
"pref": "legs_sensitivity",
"actionHeatBase": 6.4,
"startsSexualState": "footjob",
"stateDetail": "footjob",
"girlArousalBase": 4.8,
"playerArousalBase": 9.0,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.55,
"girlArousalCap": {
"mode": "lustAfterThreshold",
"min": 30,
"threshold": 50,
"max": 100
}
},
"beg_titfuck": {
"_label": "Beg for a titfuck",
"baseChance": 9,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 2,
"tab": "Ask-beg",
"tags": [
"titfuck",
"breast",
"private",
"sexual",
"ask_beg",
"beg"
],
"skills": [
"empathy",
"charm",
"teasing"
],
"skillWeights": {
"empathy": 0.38,
"charm": 0.3,
"teasing": 0.32
},
"pref": "breast_sex",
"extraPrefs": [
"breast_sensitivity"
],
"prefWeights": {
"breast_sex": 0.78,
"breast_sensitivity": 0.22
},
"actionHeatBase": 7.4,
"startsSexualState": "titfuck",
"stateDetail": "titfuck",
"girlArousalBase": 1.0,
"playerArousalBase": 9.8,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.55,
"girlArousalCap": {
"mode": "lustMin",
"min": 50,
"max": 100
}
},
"remove_your_clothes": {
"_label": "Remove your clothes",
"baseChance": 62,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Strip",
"tags": [
"private",
"sexual",
"risky",
"player_strip",
"strip"
],
"skills": [
"teasing",
"willpower"
],
"playerArousalBase": 3.0,
"girlArousalBase": 5.0
},
"ask_top_off": {
"_label": "Ask her to remove her top",
"baseChance": 24,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Strip",
"tags": [
"strip",
"private",
"ask_strip"
],
"skills": [
"charm",
"empathy"
],
"pref": "undressing",
"playerArousalBase": 3.0,
"girlArousalBase": 3.2
},
"try_top_off": {
"_label": "Try to lift her top",
"baseChance": 14,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Strip",
"tags": [
"strip",
"private",
"attempt_strip",
"risky"
],
"skills": [
"charm",
"empathy"
],
"pref": "undressing",
"playerArousalBase": 3.0,
"girlArousalBase": 5.0
},
"unhook_bra": {
"_label": "Try to unhook her bra",
"baseChance": 10,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Strip",
"tags": [
"strip",
"private",
"attempt_strip",
"risky"
],
"skills": [
"touching",
"willpower"
],
"pref": "undressing",
"playerArousalBase": 3.0,
"girlArousalBase": 5.0
},
"ask_bra_off": {
"_label": "Ask her to remove her bra",
"baseChance": 18,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Strip",
"tags": [
"strip",
"private",
"ask_strip"
],
"skills": [
"touching",
"willpower"
],
"pref": "undressing",
"playerArousalBase": 3.0,
"girlArousalBase": 3.2
},
"ask_bottom_off": {
"_label": "Ask her to remove her bottoms",
"baseChance": 22,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Strip",
"tags": [
"strip",
"private",
"ask_strip"
],
"skills": [
"charm",
"teasing"
],
"pref": "undressing",
"playerArousalBase": 3.0,
"girlArousalBase": 3.2
},
"try_bottom_off": {
"_label": "Try to slide her bottoms off",
"baseChance": 12,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Strip",
"tags": [
"strip",
"private",
"attempt_strip",
"risky"
],
"skills": [
"charm",
"teasing"
],
"pref": "undressing",
"playerArousalBase": 3.0,
"girlArousalBase": 5.0
},
"remove_panties": {
"_label": "Try to remove her panties",
"baseChance": 8,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Strip",
"tags": [
"strip",
"private",
"attempt_strip",
"risky"
],
"skills": [
"touching",
"teasing"
],
"pref": "undressing",
"playerArousalBase": 3.0,
"girlArousalBase": 5.0
},
"ask_panties_off": {
"_label": "Ask her to remove her panties",
"baseChance": 16,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Strip",
"tags": [
"strip",
"private",
"ask_strip"
],
"skills": [
"touching",
"teasing"
],
"pref": "undressing",
"playerArousalBase": 3.0,
"girlArousalBase": 3.2
},
"strip_together": {
"_label": "Ask to undress together",
"baseChance": 16,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 3,
"tab": "Strip",
"tags": [
"strip",
"private",
"ask_strip",
"mutual_nudity",
"risky"
],
"skills": [
"charm",
"willpower"
],
"pref": "undressing",
"playerArousalBase": 3.0,
"girlArousalBase": 3.2
},
"ask_naked": {
"_label": "Ask her to undress completely",
"baseChance": 24,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 3,
"tab": "Strip",
"tags": [
"strip",
"private",
"ask_strip",
"risky"
],
"skills": [
"charm",
"willpower"
],
"pref": "undressing",
"playerArousalBase": 3.0,
"girlArousalBase": 3.2
},
"gentle_command": {
"_label": "Give a gentle command",
"baseChance": 62,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Command",
"tags": [
"control",
"command"
],
"skills": [
"dominance",
"willpower"
]
},
"make_her_hold_still": {
"_label": "Tell her to hold still",
"baseChance": 50,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Command",
"tags": [
"control",
"command"
],
"skills": [
"dominance",
"willpower",
"focus"
]
},
"guide_position": {
"_label": "Guide her position",
"baseChance": 46,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Command",
"tags": [
"control",
"command"
],
"skills": [
"dominance",
"touching",
"willpower"
]
},
"dirty_praise": {
"_label": "Dirty praise",
"baseChance": 28,
"chanceLimit": 3,
"energyCost": 3,
"minutes": 1,
"tab": "Command",
"tags": [
"control",
"command"
],
"skills": [
"dominance",
"teasing",
"willpower"
]
},
"hold_eye_contact_command": {
"_label": "Tell her to keep eye contact",
"baseChance": 56,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Command",
"tags": [
"control",
"command"
],
"skills": [
"dominance",
"willpower",
"focus"
]
},
"demand_cunnilingus": {
"_label": "Demand cunnilingus",
"baseChance": 7,
"chanceLimit": 2,
"energyCost": 6,
"minutes": 1,
"tab": "Command",
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"skills": [
"dominance",
"willpower",
"focus"
],
"pref": "receiving_oral",
"startsSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"girlArousalBase": 14.0,
"playerArousalBase": 9.0
},
"demand_sixty_nine": {
"_label": "Demand 69",
"baseChance": 5,
"chanceLimit": 2,
"energyCost": 4,
"minutes": 2,
"tab": "Command",
"tags": [
"oral",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"skills": [
"dominance",
"willpower",
"oral",
"focus"
],
"skillWeights": {
"dominance": 0.35,
"willpower": 0.25,
"oral": 0.25,
"focus": 0.15
},
"pref": "sixty_nine",
"actionHeatBase": 14.0,
"startsSexualState": "sixty_nine",
"stateDetail": "sixty_nine",
"girlArousalBase": 17.0,
"playerArousalBase": 12.5
},
"demand_anal_sex": {
"_label": "Demand anal sex",
"baseChance": 1,
"chanceLimit": 1,
"energyCost": 4,
"minutes": 3,
"tab": "Command",
"tags": [
"anal",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"skills": [
"dominance",
"willpower",
"focus"
],
"pref": "anal_sensitivity",
"startsSexualState": "anal",
"stateDetail": "anal_wall",
"girlArousalBase": 17.0,
"playerArousalBase": 20.0
},
"demand_sex": {
"_label": "Demand sex",
"baseChance": 3,
"chanceLimit": 2,
"energyCost": 4,
"minutes": 2,
"tab": "Command",
"tags": [
"sex",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"skills": [
"dominance",
"willpower",
"focus"
],
"pref": "vaginal_sensitivity",
"startsSexualState": "sex",
"stateDetail": "wall",
"girlArousalBase": 22.0,
"playerArousalBase": 18.0
},
"demand_blowjob": {
"_label": "Demand a blowjob",
"baseChance": 6,
"chanceLimit": 2,
"energyCost": 6,
"minutes": 1,
"tab": "Command",
"tags": [
"receiving_oral",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"skills": [
"dominance",
"willpower",
"focus"
],
"pref": "giving_oral",
"startsSexualState": "blowjob",
"stateDetail": "oral_give",
"girlArousalBase": 5.5,
"playerArousalBase": 16.0,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"demand_handjob": {
"_label": "Demand a handjob",
"baseChance": 8,
"chanceLimit": 2,
"energyCost": 4,
"minutes": 1,
"tab": "Command",
"tags": [
"handjob",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"skills": [
"dominance",
"willpower",
"focus"
],
"pref": "handjob",
"startsSexualState": "handjob",
"stateDetail": "handjob",
"playerArousalBase": 8.5,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12,
"girlArousalBase": 3.2
},
"demand_footjob": {
"_label": "Demand a footjob",
"baseChance": 8,
"chanceLimit": 2,
"energyCost": 4,
"minutes": 1,
"tab": "Command",
"tags": [
"footjob",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"skills": [
"dominance",
"willpower",
"focus"
],
"skillWeights": {
"dominance": 0.45,
"willpower": 0.35,
"focus": 0.2
},
"pref": "legs_sensitivity",
"actionHeatBase": 6.4,
"startsSexualState": "footjob",
"stateDetail": "footjob",
"girlArousalBase": 4.8,
"playerArousalBase": 9.0,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.55,
"girlArousalCap": {
"mode": "lustAfterThreshold",
"min": 30,
"threshold": 50,
"max": 100
}
},
"demand_titfuck": {
"_label": "Demand a titfuck",
"baseChance": 5,
"chanceLimit": 2,
"energyCost": 4,
"minutes": 2,
"tab": "Command",
"tags": [
"titfuck",
"breast",
"private",
"sexual",
"ask_beg",
"demand",
"control",
"command"
],
"skills": [
"dominance",
"willpower",
"focus",
"teasing"
],
"skillWeights": {
"dominance": 0.42,
"willpower": 0.25,
"focus": 0.18,
"teasing": 0.15
},
"pref": "breast_sex",
"extraPrefs": [
"breast_sensitivity"
],
"prefWeights": {
"breast_sex": 0.78,
"breast_sensitivity": 0.22
},
"actionHeatBase": 7.4,
"startsSexualState": "titfuck",
"stateDetail": "titfuck",
"girlArousalBase": 5.0,
"playerArousalBase": 9.8,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.55,
"girlArousalCap": {
"mode": "lustMin",
"min": 50,
"max": 100
}
},
"cont_rubbing_keep": {
"_label": "Continue rubbing her",
"baseChance": 88,
"chanceLimit": 99,
"energyCost": 5,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"touch"
],
"skills": [
"touching",
"teasing"
],
"pref": "fingering",
"actionHeatBase": 7.5,
"continueState": "rubbing",
"stateDetail": "rubbing",
"girlArousalBase": 8.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 3.2,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"slide_hand_inside_panties_public": {
"_label": "Slide your hand inside her panties",
"baseChance": 68,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"public",
"sexual",
"touch",
"risky"
],
"skills": [
"touching",
"teasing",
"focus"
],
"pref": "fingering",
"actionHeatBase": 13.5,
"continueState": "rubbing",
"stateDetail": "rubbing_inside_panties",
"girlArousalBase": 12.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 4.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_rubbing_to_fingering": {
"_label": "Remove her panties and slide your finger inside",
"baseChance": 8,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"touch",
"strip",
"risky"
],
"skills": [
"touching",
"teasing"
],
"pref": "fingering",
"actionHeatBase": 14.0,
"continueState": "rubbing",
"nextSexualState": "fingering",
"stateDetail": "fingering",
"playerArousalBase": 3.85,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"girlArousalBase": 10.0
},
"lick_pussy": {
"_label": "Lick her pussy",
"baseChance": 13,
"chanceLimit": 3,
"energyCost": 12,
"minutes": 3,
"tab": "Hidden",
"tags": [
"oral",
"private",
"sexual"
],
"skills": [
"oral",
"teasing"
],
"pref": "receiving_oral",
"startsSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"girlArousalBase": 15.0,
"playerArousalBase": 10.5
},
"suck_clit": {
"_label": "Suck her clit",
"baseChance": 12,
"chanceLimit": 3,
"energyCost": 12,
"minutes": 3,
"tab": "Hidden",
"tags": [
"oral",
"private",
"sexual"
],
"skills": [
"oral",
"teasing"
],
"pref": "receiving_oral",
"startsSexualState": "cunnilingus",
"stateDetail": "clit",
"girlArousalBase": 19.0,
"playerArousalBase": 10.5
},
"missionary": {
"_label": "Missionary",
"baseChance": 7,
"chanceLimit": 3,
"energyCost": 21,
"minutes": 3,
"tab": "Hidden",
"tags": [
"sex",
"private",
"sexual"
],
"skills": [
"penetration",
"empathy",
"focus"
],
"pref": "missionary",
"startsSexualState": "sex",
"stateDetail": "missionary",
"girlArousalBase": 20.0,
"playerArousalBase": 22.0
},
"cowgirl": {
"_label": "Cowgirl",
"baseChance": 7,
"chanceLimit": 3,
"energyCost": 21,
"minutes": 3,
"tab": "Hidden",
"tags": [
"sex",
"private",
"sexual",
"submissive_position"
],
"skills": [
"penetration",
"empathy",
"focus"
],
"pref": "cowgirl",
"startsSexualState": "sex",
"stateDetail": "cowgirl",
"girlArousalBase": 20.0,
"playerArousalBase": 22.0
},
"reverse_cowgirl": {
"_label": "Reverse cowgirl",
"baseChance": 6,
"chanceLimit": 3,
"energyCost": 21,
"minutes": 3,
"tab": "Hidden",
"tags": [
"sex",
"private",
"sexual",
"submissive_position"
],
"skills": [
"penetration",
"empathy",
"focus"
],
"pref": "reverse_cowgirl",
"startsSexualState": "sex",
"stateDetail": "reverse_cowgirl",
"girlArousalBase": 20.0,
"playerArousalBase": 22.0
},
"doggy": {
"_label": "Doggy style",
"baseChance": 6,
"chanceLimit": 3,
"energyCost": 21,
"minutes": 3,
"tab": "Hidden",
"tags": [
"sex",
"private",
"sexual"
],
"skills": [
"penetration",
"focus"
],
"pref": "doggy",
"startsSexualState": "sex",
"stateDetail": "doggy",
"girlArousalBase": 20.0,
"playerArousalBase": 22.0
},
"against_wall": {
"_label": "Sex against wall",
"baseChance": 5,
"chanceLimit": 2,
"energyCost": 24,
"minutes": 3,
"tab": "Hidden",
"tags": [
"sex",
"private",
"sexual",
"risky",
"dominant_position"
],
"skills": [
"penetration",
"fitness",
"dominance"
],
"pref": "wall",
"startsSexualState": "sex",
"stateDetail": "wall",
"girlArousalBase": 20.0,
"playerArousalBase": 22.0
},
"breast_sex": {
"_label": "Breast sex",
"baseChance": 12,
"chanceLimit": 2,
"energyCost": 15,
"minutes": 3,
"tab": "Hidden",
"tags": [
"sex",
"private",
"sexual"
],
"skills": [
"penetration",
"teasing"
],
"pref": "breast_sex",
"startsSexualState": "sex",
"stateDetail": "breast_sex",
"girlArousalBase": 11.0,
"playerArousalBase": 22.0,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"anal_doggy": {
"_label": "Anal doggy",
"baseChance": 2,
"chanceLimit": 2,
"energyCost": 24,
"minutes": 3,
"tab": "Hidden",
"tags": [
"anal",
"private",
"sexual"
],
"skills": [
"anal",
"focus"
],
"pref": "doggy",
"extraPrefs": [
"anal_sensitivity"
],
"startsSexualState": "anal",
"stateDetail": "anal_doggy",
"girlArousalBase": 16.0,
"playerArousalBase": 11.0
},
"anal_missionary": {
"_label": "Anal missionary",
"baseChance": 4,
"chanceLimit": 2,
"energyCost": 24,
"minutes": 3,
"tab": "Hidden",
"tags": [
"anal",
"private",
"sexual"
],
"skills": [
"anal",
"empathy",
"focus"
],
"pref": "missionary",
"extraPrefs": [
"anal_sensitivity"
],
"startsSexualState": "anal",
"stateDetail": "anal_missionary",
"girlArousalBase": 16.0,
"playerArousalBase": 11.0
},
"anal_cowgirl": {
"_label": "Anal cowgirl",
"baseChance": 3,
"chanceLimit": 2,
"energyCost": 24,
"minutes": 3,
"tab": "Hidden",
"tags": [
"anal",
"private",
"sexual",
"submissive_position"
],
"skills": [
"anal",
"empathy",
"focus"
],
"pref": "cowgirl",
"extraPrefs": [
"anal_sensitivity"
],
"startsSexualState": "anal",
"stateDetail": "anal_cowgirl",
"girlArousalBase": 16.0,
"playerArousalBase": 11.0
},
"anal_reverse_cowgirl": {
"_label": "Anal reverse cowgirl",
"baseChance": 3,
"chanceLimit": 2,
"energyCost": 24,
"minutes": 3,
"tab": "Hidden",
"tags": [
"anal",
"private",
"sexual",
"submissive_position"
],
"skills": [
"anal",
"empathy",
"focus"
],
"pref": "reverse_cowgirl",
"extraPrefs": [
"anal_sensitivity"
],
"startsSexualState": "anal",
"stateDetail": "anal_reverse_cowgirl",
"girlArousalBase": 16.0,
"playerArousalBase": 11.0
},
"anal_wall": {
"_label": "Anal against wall",
"baseChance": 2,
"chanceLimit": 2,
"energyCost": 27,
"minutes": 3,
"tab": "Hidden",
"tags": [
"anal",
"private",
"sexual",
"risky",
"dominant_position"
],
"skills": [
"anal",
"fitness",
"dominance"
],
"pref": "wall",
"extraPrefs": [
"anal_sensitivity"
],
"startsSexualState": "anal",
"stateDetail": "anal_wall",
"girlArousalBase": 16.0,
"playerArousalBase": 11.0
},
"cont_finger_keep": {
"_label": "Keep fingering her",
"baseChance": 82,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"touch"
],
"skills": [
"touching",
"focus"
],
"pref": "fingering",
"actionHeatBase": 9.0,
"continueState": "fingering",
"stateDetail": "fingering",
"girlArousalBase": 7.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 3.35,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_finger_tease": {
"_label": "Tease her with your fingers",
"baseChance": 72,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"touch",
"risky"
],
"skills": [
"touching",
"teasing"
],
"pref": "fingering",
"actionHeatBase": 14.0,
"continueState": "fingering",
"stateDetail": "fingering",
"girlArousalBase": 12.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 3.7,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_finger_to_mouth": {
"_label": "Move your mouth to her clit",
"baseChance": 66,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"touch",
"risky"
],
"skills": [
"oral",
"teasing",
"touching"
],
"pref": "receiving_oral",
"actionHeatBase": 16.0,
"continueState": "fingering",
"nextSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"girlArousalBase": 16.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 6.2,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_cunni_keep": {
"_label": "Keep licking her",
"baseChance": 80,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral"
],
"skills": [
"oral",
"focus"
],
"pref": "receiving_oral",
"actionHeatBase": 10.5,
"continueState": "cunnilingus",
"stateDetail": "oral_receive",
"girlArousalBase": 9.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 4.725,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_cunni_tease": {
"_label": "Tease her with your tongue",
"baseChance": 72,
"chanceLimit": 4,
"energyCost": 4,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"tease"
],
"skills": [
"teasing",
"oral"
],
"pref": "receiving_oral",
"actionHeatBase": 14.0,
"continueState": "cunnilingus",
"stateDetail": "teasing",
"girlArousalBase": 15.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 6.3,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_cunni_add_fingers": {
"_label": "Add your fingers while licking",
"baseChance": 62,
"chanceLimit": 99,
"energyCost": 5,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"touch",
"risky"
],
"skills": [
"oral",
"touching"
],
"pref": "fingering",
"actionHeatBase": 16.0,
"continueState": "cunnilingus",
"stateDetail": "fingering",
"girlArousalBase": 14.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 4.2,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_cunni_to_analingus": {
"_label": "Shift your tongue lower",
"baseChance": 44,
"chanceLimit": 3,
"energyCost": 5,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"analingus",
"risky",
"state_shift"
],
"skills": [
"oral",
"teasing",
"empathy"
],
"pref": "anal_sensitivity",
"actionHeatBase": 12.0,
"continueState": "cunnilingus",
"nextSexualState": "analingus",
"stateDetail": "analingus",
"girlArousalBase": 12.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 5.4,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_cunni_to_sex": {
"_label": "Escalate from oral to sex",
"baseChance": 30,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 3,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"risky",
"state_escalation"
],
"skills": [
"penetration",
"empathy",
"focus"
],
"pref": "vaginal_sensitivity",
"actionHeatBase": 20.0,
"continueState": "cunnilingus",
"nextSexualState": "sex",
"stateDetail": "missionary",
"girlArousalBase": 20.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 15.4,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_bj_let_continue": {
"_label": "Let her keep sucking you",
"baseChance": 84,
"chanceLimit": 99,
"energyCost": 2,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral"
],
"skills": [
"empathy",
"focus"
],
"pref": "giving_oral",
"actionHeatBase": 5.0,
"continueState": "blowjob",
"stateDetail": "oral_give",
"girlArousalBase": 2.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 11.0,
"_playerArousalBaseNote": "Manual rebalance: blowjob continuation player arousal base set directly.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_hj_keep": {
"_label": "Let her keep stroking you",
"baseChance": 84,
"chanceLimit": 99,
"energyCost": 2,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"handjob"
],
"skills": [
"focus",
"empathy"
],
"pref": "handjob",
"actionHeatBase": 5.4,
"continueState": "handjob",
"stateDetail": "handjob",
"girlArousalBase": 2.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 7.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_hj_guide_rhythm": {
"_label": "Guide her hand",
"baseChance": 78,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"handjob",
"control"
],
"skills": [
"dominance",
"focus",
"teasing"
],
"pref": "handjob",
"actionHeatBase": 6.0,
"continueState": "handjob",
"stateDetail": "handjob",
"girlArousalBase": 0.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 6.2,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_hj_kiss": {
"_label": "Kiss while she strokes you",
"baseChance": 80,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"handjob",
"kiss"
],
"skills": [
"kissing",
"empathy"
],
"pref": "kissing",
"actionHeatBase": 5.4,
"continueState": "handjob",
"stateDetail": "kissing",
"girlArousalBase": 4.2,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 8.2,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_hj_tease": {
"_label": "Tease her while she strokes you",
"baseChance": 76,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"handjob"
],
"skills": [
"teasing",
"charm"
],
"actionHeatBase": 5.6,
"continueState": "handjob",
"stateDetail": "teasing",
"girlArousalBase": 2.6,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 7.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_hj_to_bj": {
"_label": "Guide her hand to her mouth",
"baseChance": 56,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral",
"state_shift"
],
"skills": [
"charm",
"teasing",
"empathy"
],
"pref": "giving_oral",
"actionHeatBase": 12.0,
"continueState": "handjob",
"nextSexualState": "blowjob",
"stateDetail": "oral_give",
"girlArousalBase": 3.8,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 11.84,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_footjob_keep": {
"_label": "Let her continue the footjob",
"baseChance": 88,
"chanceLimit": 99,
"energyCost": 2,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"footjob"
],
"skills": [
"focus",
"empathy"
],
"pref": "legs_sensitivity",
"actionHeatBase": 6.4,
"continueState": "footjob",
"stateDetail": "footjob",
"girlArousalBase": 6.4,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 8.5,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.55,
"girlArousalCap": {
"mode": "lustAfterThreshold",
"min": 30,
"threshold": 50,
"max": 100
}
},
"cont_titfuck_keep": {
"_label": "Continue to fuck her tits",
"baseChance": 82,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"titfuck",
"breast"
],
"skills": [
"penetration",
"focus",
"teasing"
],
"skillWeights": {
"penetration": 0.35,
"focus": 0.35,
"teasing": 0.3
},
"pref": "breast_sex",
"extraPrefs": [
"breast_sensitivity"
],
"prefWeights": {
"breast_sex": 0.78,
"breast_sensitivity": 0.22
},
"actionHeatBase": 7.4,
"continueState": "titfuck",
"stateDetail": "titfuck",
"girlArousalBase": 3.4,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 9.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.55,
"girlArousalCap": {
"mode": "lustMin",
"min": 50,
"max": 100
}
},
"cont_titfuck_let_work": {
"_label": "Let her do the work",
"baseChance": 68,
"chanceLimit": 99,
"energyCost": 2,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"titfuck",
"breast",
"control"
],
"skills": [
"dominance",
"focus",
"empathy"
],
"skillWeights": {
"dominance": 0.5,
"focus": 0.3,
"empathy": 0.2
},
"pref": "breast_sex",
"extraPrefs": [
"breast_sensitivity"
],
"prefWeights": {
"breast_sex": 0.78,
"breast_sensitivity": 0.22
},
"actionHeatBase": 6.6,
"continueState": "titfuck",
"stateDetail": "titfuck",
"girlArousalBase": 3.2,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 8.8,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.55,
"girlArousalCap": {
"mode": "lustMin",
"min": 50,
"max": 100
}
},
"cont_titfuck_lick_tip": {
"_label": "Ask her to lick the tip",
"baseChance": 64,
"chanceLimit": 99,
"energyCost": 2,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"titfuck",
"breast",
"oral_light",
"control"
],
"skills": [
"dominance",
"teasing",
"focus"
],
"skillWeights": {
"dominance": 0.45,
"teasing": 0.35,
"focus": 0.2
},
"pref": "breast_sex",
"extraPrefs": [
"breast_sensitivity"
],
"prefWeights": {
"breast_sex": 0.78,
"breast_sensitivity": 0.22
},
"actionHeatBase": 8.0,
"continueState": "titfuck",
"stateDetail": "titfuck_lick_tip",
"girlArousalBase": 3.6,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 10.3,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.55,
"girlArousalCap": {
"mode": "lustMin",
"min": 50,
"max": 100
}
},
"cont_bj_guide_rhythm": {
"_label": "Guide her rhythm",
"baseChance": 76,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral",
"control"
],
"skills": [
"dominance",
"focus",
"teasing"
],
"pref": "giving_oral",
"actionHeatBase": 8.0,
"continueState": "blowjob",
"stateDetail": "oral_give",
"girlArousalBase": 1.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 10.0,
"_playerArousalBaseNote": "Manual rebalance: blowjob continuation player arousal base set directly.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_bj_praise": {
"_label": "Praise what she is doing",
"baseChance": 86,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral",
"social"
],
"skills": [
"charm",
"empathy",
"teasing"
],
"pref": "giving_oral",
"actionHeatBase": 6.5,
"continueState": "blowjob",
"stateDetail": "oral_give",
"girlArousalBase": 4.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 10.5,
"_playerArousalBaseNote": "Manual rebalance: blowjob continuation player arousal base set directly.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_bj_deeper": {
"_label": "Encourage her to go deeper",
"baseChance": 68,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral",
"risky"
],
"skills": [
"dominance",
"teasing",
"empathy"
],
"pref": "giving_oral",
"actionHeatBase": 10.0,
"continueState": "blowjob",
"stateDetail": "deepthroat",
"girlArousalBase": 3.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 14.0,
"_playerArousalBaseNote": "Manual rebalance: blowjob continuation player arousal base set directly.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12,
"patienceSuccessMultiplier": 1.5,
"patienceFailureMultiplier": 1.65,
"_note": "Uses deepthroat-specific lines and image, but stays in blowjob continue state."
},
"cont_bj_slow_down": {
"_label": "Slow her down",
"baseChance": 82,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral"
],
"skills": [
"empathy",
"focus"
],
"pref": "giving_oral",
"actionHeatBase": 5.5,
"continueState": "blowjob",
"stateDetail": "oral_give",
"girlArousalBase": 1.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 3.5,
"_playerArousalBaseNote": "Manual rebalance: blowjob continuation player arousal base set directly.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_bj_eye_contact": {
"_label": "Hold eye contact with her",
"baseChance": 79,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral"
],
"skills": [
"teasing",
"focus"
],
"pref": "giving_oral",
"actionHeatBase": 7.0,
"continueState": "blowjob",
"stateDetail": "oral_give",
"girlArousalBase": 3.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 13.5,
"_playerArousalBaseNote": "Manual rebalance: blowjob continuation player arousal base set directly.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_bj_touch_hair": {
"_label": "Touch her hair while she sucks you",
"baseChance": 73,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral",
"touch"
],
"skills": [
"dominance",
"empathy"
],
"pref": "giving_oral",
"actionHeatBase": 7.5,
"continueState": "blowjob",
"stateDetail": "oral_give",
"girlArousalBase": 4.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 13.0,
"_playerArousalBaseNote": "Manual rebalance: blowjob continuation player arousal base set directly.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_bj_to_sex": {
"_label": "Pull her up into sex",
"baseChance": 44,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 3,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"risky",
"state_escalation"
],
"skills": [
"penetration",
"empathy",
"teasing"
],
"pref": "vaginal_sensitivity",
"actionHeatBase": 18.0,
"continueState": "blowjob",
"nextSexualState": "sex",
"stateDetail": "missionary",
"girlArousalBase": 16.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 13.76,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_sex_missionary": {
"_label": "Continue missionary",
"baseChance": 80,
"chanceLimit": 99,
"energyCost": 7,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"sex"
],
"skills": [
"penetration",
"empathy",
"focus"
],
"pref": "missionary",
"actionHeatBase": 16.0,
"continueState": "sex",
"stateDetail": "missionary",
"girlArousalBase": 16.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 14.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_sex_doggy": {
"_label": "Continue doggy style",
"baseChance": 74,
"chanceLimit": 99,
"energyCost": 8,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"sex"
],
"skills": [
"penetration",
"focus"
],
"pref": "doggy",
"actionHeatBase": 19.0,
"continueState": "sex",
"stateDetail": "doggy",
"girlArousalBase": 16.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 15.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_sex_cowgirl": {
"_label": "Continue cowgirl",
"baseChance": 78,
"chanceLimit": 99,
"energyCost": 5,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"submissive_position"
],
"skills": [
"penetration",
"empathy",
"focus"
],
"pref": "cowgirl",
"actionHeatBase": 17.0,
"continueState": "sex",
"stateDetail": "cowgirl",
"girlArousalBase": 16.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 15.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_sex_reverse_cowgirl": {
"_label": "Continue reverse cowgirl",
"baseChance": 76,
"chanceLimit": 99,
"energyCost": 5,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"submissive_position"
],
"skills": [
"penetration",
"empathy",
"focus"
],
"pref": "reverse_cowgirl",
"actionHeatBase": 17.5,
"continueState": "sex",
"stateDetail": "reverse_cowgirl",
"girlArousalBase": 16.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 15.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_sex_wall": {
"_label": "Continue against wall",
"baseChance": 66,
"chanceLimit": 99,
"energyCost": 11,
"minutes": 3,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"risky",
"dominant_position"
],
"skills": [
"penetration",
"fitness",
"dominance"
],
"pref": "wall",
"actionHeatBase": 21.0,
"continueState": "sex",
"stateDetail": "wall",
"girlArousalBase": 16.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 16.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_sex_to_anal": {
"_label": "Escalate from sex to anal",
"baseChance": 36,
"chanceLimit": 99,
"energyCost": 9,
"minutes": 3,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"risky"
],
"skills": [
"anal",
"empathy",
"focus"
],
"pref": "anal_sensitivity",
"actionHeatBase": 15.0,
"continueState": "sex",
"nextSexualState": "anal",
"stateDetail": "anal_doggy",
"girlArousalBase": 12.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 20.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_sex_to_69": {
"_label": "Shift into 69",
"baseChance": 68,
"chanceLimit": 99,
"energyCost": 9,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral"
],
"skills": [
"oral",
"teasing",
"empathy"
],
"pref": "sixty_nine",
"actionHeatBase": 13.5,
"continueState": "sex",
"nextSexualState": "sixty_nine",
"stateDetail": "sixty_nine",
"girlArousalBase": 14.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 12.75,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_69_keep": {
"_label": "Keep the 69 rhythm",
"baseChance": 82,
"chanceLimit": 99,
"energyCost": 9,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral"
],
"skills": [
"oral",
"teasing",
"empathy"
],
"pref": "sixty_nine",
"actionHeatBase": 13.5,
"continueState": "sixty_nine",
"stateDetail": "sixty_nine",
"girlArousalBase": 13.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 12.5,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_69_focus_her": {
"_label": "Focus your tongue on her",
"baseChance": 76,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral"
],
"skills": [
"oral",
"focus",
"empathy"
],
"pref": "receiving_oral",
"actionHeatBase": 15.5,
"continueState": "sixty_nine",
"stateDetail": "oral_receive",
"girlArousalBase": 16.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 9.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_69_let_her_focus_you": {
"_label": "Let her focus on you",
"baseChance": 78,
"chanceLimit": 99,
"energyCost": 3,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"receiving_oral"
],
"skills": [
"empathy",
"teasing",
"focus"
],
"pref": "giving_oral",
"actionHeatBase": 9.0,
"continueState": "sixty_nine",
"stateDetail": "oral_give",
"girlArousalBase": 8.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 14.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier.",
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"cont_69_grind": {
"_label": "Grind your hips into the position",
"baseChance": 70,
"chanceLimit": 99,
"energyCost": 8,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"touch",
"risky"
],
"skills": [
"teasing",
"touching",
"oral"
],
"pref": "sixty_nine",
"actionHeatBase": 16.0,
"continueState": "sixty_nine",
"stateDetail": "sixty_nine",
"girlArousalBase": 12.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 14.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_69_to_sex": {
"_label": "Turn 69 into sex",
"baseChance": 46,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 3,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"sex",
"risky",
"state_escalation"
],
"skills": [
"penetration",
"empathy",
"oral"
],
"pref": "vaginal_sensitivity",
"actionHeatBase": 18.0,
"continueState": "sixty_nine",
"nextSexualState": "sex",
"stateDetail": "missionary",
"girlArousalBase": 18.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 17.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_anal_slow": {
"_label": "Keep anal slow",
"baseChance": 80,
"chanceLimit": 99,
"energyCost": 5,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"anal"
],
"skills": [
"anal",
"empathy",
"focus"
],
"pref": "anal_sensitivity",
"actionHeatBase": 12.0,
"continueState": "anal",
"girlArousalBase": 13.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 10.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_anal_doggy": {
"_label": "Continue anal doggy",
"baseChance": 68,
"chanceLimit": 99,
"energyCost": 8,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"anal"
],
"skills": [
"anal",
"focus"
],
"pref": "doggy",
"extraPrefs": [
"anal_sensitivity"
],
"actionHeatBase": 17.0,
"continueState": "anal",
"stateDetail": "anal_doggy",
"girlArousalBase": 12.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 17.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_anal_missionary": {
"_label": "Continue anal missionary",
"baseChance": 72,
"chanceLimit": 99,
"energyCost": 7,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"anal"
],
"skills": [
"anal",
"empathy",
"focus"
],
"pref": "missionary",
"extraPrefs": [
"anal_sensitivity"
],
"actionHeatBase": 14.5,
"continueState": "anal",
"stateDetail": "anal_missionary",
"girlArousalBase": 12.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 15.5,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_anal_cowgirl": {
"_label": "Continue anal cowgirl",
"baseChance": 70,
"chanceLimit": 99,
"energyCost": 5,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"submissive_position"
],
"skills": [
"anal",
"empathy",
"focus"
],
"pref": "cowgirl",
"extraPrefs": [
"anal_sensitivity"
],
"actionHeatBase": 15.5,
"continueState": "anal",
"stateDetail": "anal_cowgirl",
"girlArousalBase": 12.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 17.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_anal_reverse_cowgirl": {
"_label": "Continue anal reverse cowgirl",
"baseChance": 68,
"chanceLimit": 99,
"energyCost": 5,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"submissive_position"
],
"skills": [
"anal",
"empathy",
"focus"
],
"pref": "reverse_cowgirl",
"extraPrefs": [
"anal_sensitivity"
],
"actionHeatBase": 16.0,
"continueState": "anal",
"stateDetail": "anal_reverse_cowgirl",
"girlArousalBase": 12.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 17.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_anal_wall": {
"_label": "Continue anal against wall",
"baseChance": 62,
"chanceLimit": 99,
"energyCost": 11,
"minutes": 3,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"risky",
"dominant_position"
],
"skills": [
"anal",
"fitness",
"dominance"
],
"pref": "wall",
"extraPrefs": [
"anal_sensitivity"
],
"actionHeatBase": 18.5,
"continueState": "anal",
"stateDetail": "anal_wall",
"girlArousalBase": 12.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 18.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_anal_hold": {
"_label": "Hold still and let her adjust",
"baseChance": 86,
"chanceLimit": 99,
"energyCost": 4,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"anal"
],
"skills": [
"anal",
"empathy"
],
"pref": "anal_sensitivity",
"actionHeatBase": 7.0,
"continueState": "anal",
"girlArousalBase": 3.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 5.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_analingus_keep": {
"_label": "Keep licking her ass",
"baseChance": 76,
"chanceLimit": 99,
"energyCost": 4,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"analingus"
],
"skills": [
"oral",
"focus"
],
"pref": "anal_sensitivity",
"actionHeatBase": 10.5,
"continueState": "analingus",
"stateDetail": "analingus",
"girlArousalBase": 12.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 4.725,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_analingus_slow": {
"_label": "Slow your tongue down and tease her",
"baseChance": 82,
"chanceLimit": 99,
"energyCost": 5,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"analingus",
"tease"
],
"skills": [
"oral",
"empathy",
"teasing"
],
"pref": "anal_sensitivity",
"actionHeatBase": 8.5,
"continueState": "analingus",
"stateDetail": "analingus",
"girlArousalBase": 8.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 3.825,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_analingus_circle": {
"_label": "Add your fingers while licking her ass",
"baseChance": 70,
"chanceLimit": 99,
"energyCost": 5,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"analingus",
"risky",
"touch"
],
"skills": [
"oral",
"touching",
"anal"
],
"pref": "anal_sensitivity",
"actionHeatBase": 15.0,
"continueState": "analingus",
"stateDetail": "analingus_fingers",
"girlArousalBase": 14.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 10.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_analingus_to_cunni": {
"_label": "Move your tongue back to her pussy",
"baseChance": 68,
"chanceLimit": 99,
"energyCost": 9,
"minutes": 2,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"oral",
"state_shift"
],
"skills": [
"oral",
"empathy",
"teasing"
],
"pref": "receiving_oral",
"actionHeatBase": 11.5,
"continueState": "analingus",
"nextSexualState": "cunnilingus",
"stateDetail": "oral_receive",
"girlArousalBase": 11.5,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 5.175,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"cont_analingus_to_anal": {
"_label": "Escalate from analingus to anal sex",
"baseChance": 22,
"chanceLimit": 99,
"energyCost": 6,
"minutes": 3,
"tab": "Continue",
"tags": [
"continue_state",
"private",
"sexual",
"anal",
"risky",
"state_escalation"
],
"skills": [
"anal",
"empathy",
"focus"
],
"pref": "anal_sensitivity",
"actionHeatBase": 18.0,
"continueState": "analingus",
"nextSexualState": "anal",
"stateDetail": "anal_doggy",
"girlArousalBase": 18.0,
"_girlArousalBaseNote": "Continue actions use actionHeatBase as girl arousal base.",
"playerArousalBase": 19.0,
"_playerArousalBaseNote": "Derived from actionHeatBase and continueState multiplier."
},
"come_body": {
"_label": "Come on her body",
"baseChance": 72,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 3,
"tab": "Climax",
"tags": [
"climax",
"private",
"sexual"
],
"skills": [
"dominance",
"focus",
"empathy"
],
"prefWeights": {
"legs_sensitivity": 0.5,
"ass_sensitivity": 0.25,
"breast_sensitivity": 0.25
}
},
"come_back": {
"_label": "Come on her ass",
"baseChance": 70,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 3,
"tab": "Climax",
"tags": [
"climax",
"private",
"sexual"
],
"skills": [
"dominance",
"focus",
"empathy"
],
"pref": "ass_sensitivity"
},
"come_boobs": {
"_label": "Come on her tits",
"baseChance": 70,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 3,
"tab": "Climax",
"tags": [
"climax",
"private",
"sexual"
],
"skills": [
"dominance",
"focus",
"empathy"
],
"pref": "breast_sensitivity"
},
"come_face": {
"_label": "Come on her face",
"baseChance": 38,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 3,
"tab": "Climax",
"tags": [
"climax",
"private",
"sexual"
],
"skills": [
"dominance",
"focus",
"empathy"
]
},
"come_mouth": {
"_label": "Come in her mouth",
"baseChance": 26,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 3,
"tab": "Climax",
"tags": [
"climax",
"private",
"sexual"
],
"skills": [
"dominance",
"focus",
"empathy"
],
"pref": "giving_oral"
},
"come_inside": {
"_label": "Come inside her pussy",
"baseChance": 22,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 3,
"tab": "Climax",
"tags": [
"climax",
"private",
"sexual"
],
"skills": [
"dominance",
"focus",
"empathy"
],
"pref": "vaginal_sensitivity"
},
"come_inside_ass": {
"_label": "Come inside her ass",
"baseChance": 32,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 3,
"tab": "Climax",
"tags": [
"climax",
"private",
"sexual"
],
"skills": [
"dominance",
"focus",
"empathy"
],
"pref": "anal_sensitivity"
},
"inquire_jobs": {
"_label": "Inquire about jobs",
"baseChance": 100,
"chanceLimit": 1,
"energyCost": 1,
"minutes": 1,
"tab": "Talk",
"tags": [
"safe",
"social",
"ask_info",
"job_lead"
],
"skills": [
"charm",
"focus"
],
"_note": "Special action: handled by resolveJobInquiry. No chance roll; unlock outcome comes from each job's unlock.min requirements."
},
"inquire_training": {
"_label": "Inquire about training",
"baseChance": 100,
"chanceLimit": 1,
"energyCost": 1,
"minutes": 1,
"tab": "Talk",
"tags": [
"safe",
"social",
"ask_info",
"training_lead"
],
"skills": [
"focus",
"empathy"
],
"_note": "Special action: handled by resolveJobInquiry. No chance roll; unlock outcome comes from each training unlock.min requirement."
},
"rub_ass_clothes": {
"_label": "Rub her ass through her clothes",
"baseChance": 29,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Petting",
"tags": [
"petting",
"touch",
"sexual",
"fabric"
],
"skills": [
"touching",
"massage"
],
"pref": "ass_sensitivity",
"girlArousalBase": 1.1,
"playerArousalBase": 0.7,
"playerArousalCap": 30
},
"bring_hand_inside_pants": {
"_label": "Bring her hand inside your pants",
"baseChance": 30,
"chanceLimit": 2,
"energyCost": 3,
"minutes": 1,
"tab": "Petting",
"tags": [
"petting",
"public",
"sexual",
"touch",
"handjob",
"risky"
],
"skills": [
"touching",
"teasing",
"focus"
],
"pref": "handjob",
"startsSexualState": "public_handjob",
"stateDetail": "public_handjob",
"playerArousalBase": 8.5,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12,
"girlArousalBase": 3.2
},
"cont_public_handjob_keep": {
"_label": "Let her keep jerking you",
"baseChance": 84,
"chanceLimit": 99,
"energyCost": 2,
"minutes": 1,
"tab": "Continue",
"tags": [
"continue_state",
"public",
"sexual",
"handjob"
],
"skills": [
"focus",
"empathy"
],
"pref": "handjob",
"actionHeatBase": 5.4,
"continueState": "public_handjob",
"stateDetail": "public_handjob",
"girlArousalBase": 2.0,
"playerArousalBase": 7.0,
"playerOnlyStim": true,
"girlArousalPlayerOnlyMultiplier": 0.12
},
"come_public_hand": {
"_label": "Come in her hand",
"baseChance": 76,
"chanceLimit": 99,
"energyCost": 0,
"minutes": 2,
"tab": "Climax",
"tags": [
"climax",
"public",
"sexual",
"handjob"
],
"skills": [
"focus",
"empathy"
],
"pref": "handjob",
"climaxTarget": "hands",
"requiresSexualState": "public_handjob",
"requiresPlayerDressed": true
}
}
}
END_ACTION_BALANCE_DATABASE %//% DIALOGUE_DATA
{
"girlId": "g8",
"girl": "Elena Park",
"readyVariable": "dialogue009ready",
"notes": [],
"heatInterruptions": {
"success": [
"\"Give me a second. I heard you, just not all of it.\"",
"\"Ask me again when I can think straight.\""
],
"failure": [
"\"No. Bad time for a full conversation.\"",
"\"I can't follow that right now.\""
],
"successHot": [
"\"One question. Then let me get back to this.\"",
"\"I was listening. I just got distracted.\""
],
"failureHot": [
"\"Not now. Please.\"",
"\"I can't talk about that while you're doing this.\""
]
},
"responses": [
{
"action": "talk_cooking",
"success": [
"\"That part makes sense. If you make it twice, you can tell what actually changed.\"",
"\"I can follow that. I just need the version you'd make on a weeknight.\"",
"\"You lost me at 'a pinch.' Give me a number and I'll believe you.\"",
"\"Send me the recipe. I'll try it once before I start changing it.\""
],
"failure": [
"\"That sounds like three dinners and no groceries left by Thursday.\"",
"\"I don't know enough to argue. I do know I'd burn that.\"",
"\"Wait. Are we talking about dinner or a project plan?\"",
"\"Start with the pan, not the finished plate.\""
],
"storyPool": [
{
"reaction": "Elena rubs her thumb over the side of one finger.",
"dialogue": [
"\"I tried meal-prepping curry for a week once.\"",
"\"By Wednesday I had eaten it three times and started ordering toast.\"",
"\"The curry tasted fine. I was simply tired of eating the same thing.\""
]
},
{
"reaction": "Elena smiles a little.",
"dialogue": [
"\"Maya caught me trying to finish a forecast during lunch.\"",
"\"She put soup in front of me and took my charger off the table.\"",
"\"I got it back after I ate. Fair enough.\""
]
},
{
"reaction": "Elena looks briefly embarrassed.",
"dialogue": [
"\"I made a grocery sheet that was meant to stop me wasting food.\"",
"\"It mostly told me I was buying too many eggs.\"",
"\"The sheet was right. I ignored it for two months.\""
]
},
{
"reaction": "Elena shrugs.",
"dialogue": [
"\"Paige told me to keep frozen food for deadline weeks.\"",
"\"I said I was perfectly capable of cooking after work.\"",
"\"The next week I ate crackers for dinner twice, so she won that one.\""
]
},
{
"reaction": "Elena laughs under her breath.",
"dialogue": [
"\"I tried using a recipe app that ranked meals by effort.\"",
"\"It called a dish with six pans 'moderate.'\"",
"\"I deleted it before it could make another suggestion.\""
]
}
]
},
{
"action": "talk_photography",
"success": [
"\"I don't know much about lenses, but I can tell when the subject looks trapped.\"",
"\"That crop helps. I can see what you wanted me to look at.\"",
"\"I'd keep the awkward one. It looks like a real person was there.\"",
"\"Show me why you picked that frame over the other one.\""
],
"failure": [
"\"I think you're fixing the color because you don't like the photo.\"",
"\"That sounds technical, but I can't see the difference yet.\"",
"\"I still prefer the first shot. I can see the subject more clearly in that one.\"",
"\"I'm not sure. I need to see it, not just hear the settings.\""
],
"storyPool": [
{
"reaction": "Elena tilts her head.",
"dialogue": [
"\"Clara once sent me photos from an event with no labels at all.\"",
"\"I could count the crowd, but not tell which room was which.\"",
"\"She started naming the folders after that.\""
]
},
{
"reaction": "Elena touches the corner of her mouth.",
"dialogue": [
"\"Diana asked me which thumbnail got people to click her stream.\"",
"\"The answer was the one where she looked like she'd just heard bad news.\"",
"\"She said that was useless advice and used it anyway.\""
]
},
{
"reaction": "Elena gives a small nod.",
"dialogue": [
"\"I took a photo of a bus stop after rain once.\"",
"\"I only kept it because the puddle made the streetlights look doubled.\"",
"\"The rest of the roll was just blurry pavement.\""
]
},
{
"reaction": "Elena looks down for a second.",
"dialogue": [
"\"I took pictures during a power cut once, with only a lamp beside the window.\"",
"\"My phone brightened every shot until the room looked normally lit.\"",
"\"I turned the automatic correction off and kept the darker photograph because it looked like the room I had actually seen.\""
]
},
{
"reaction": "Elena smiles.",
"dialogue": [
"\"A client wanted every chart in a report to use stock photos behind it.\"",
"\"The numbers became harder to read immediately.\"",
"\"We used one photo on the first page and stopped there.\""
]
}
]
},
{
"action": "talk_massage",
"success": [
"\"Start around the sore spot. If you go straight into it, I tense up.\"",
"\"My shoulders get bad after long calls. Slow is better than hard.\"",
"\"That sounds right. Give the muscle time to stop fighting you.\"",
"\"I don't need a lecture. I need my neck to hurt less tomorrow.\""
],
"failure": [
"\"That sounds painful, not relaxing.\"",
"\"No, I think I'd pull away if someone started like that.\"",
"\"You're describing a lot of force and not much care.\"",
"\"I don't know. I'd want the person to notice if I was tensing.\""
],
"storyPool": [
{
"reaction": "Elena rolls one shoulder.",
"dialogue": [
"\"A doctor told me to take breaks from typing every hour.\"",
"\"I downloaded an app that reminds me.\"",
"\"Mostly I click 'later' until it gives up.\""
]
},
{
"reaction": "Elena presses two fingers against her wrist.",
"dialogue": [
"\"Zoe showed me the wrist wrap she uses when she has been at a keyboard too long.\"",
"\"I bought the same one, used it for two days and forgot it in a drawer.\"",
"\"Zoe found it there when she came over to help with my laptop and put it beside the keyboard.\""
]
},
{
"reaction": "Elena smiles with one side of her mouth.",
"dialogue": [
"\"A therapist told me I hold my shoulders up during long calls.\"",
"\"I disagreed until she asked me to lower them and I realised they had been almost touching my ears.\"",
"\"Now I check them whenever a meeting runs past an hour.\""
]
},
{
"reaction": "Elena looks mildly annoyed with herself.",
"dialogue": [
"\"I bought a foam roller after a friend recommended it.\"",
"\"The first time I used it, I spent ten minutes trying not to fall off it.\"",
"\"I have better balance now, at least.\""
]
},
{
"reaction": "Elena relaxes her hands in her lap.",
"dialogue": [
"\"My jaw started aching during a week of late reports, even on days when I had barely spoken.\"",
"\"A dentist pointed out that I was clenching my teeth while I worked.\"",
"\"I put a reminder on my screen to take a short break before the ache starts.\""
]
}
]
},
{
"action": "talk_sports",
"success": [
"\"I can do a short routine if it has a point.\"",
"\"Walking is easier for me to keep up than pretending I enjoy sprints.\"",
"\"That sounds manageable. What would I actually do first?\"",
"\"I like the part where it fits into a normal week.\""
],
"failure": [
"\"That sounds like a good way for me to avoid it completely.\"",
"\"I know the data says it is good for me. My legs are less convinced.\"",
"\"I need the beginner version, not the version for people who already like this.\"",
"\"If I cannot walk tomorrow, I have planned it badly.\""
],
"storyPool": [
{
"reaction": "Elena gives a quiet laugh.",
"dialogue": [
"\"I joined a work run once because everybody said it was only five kilometres.\"",
"\"I wore shoes that looked right and felt terrible halfway through.\"",
"\"I finished with blisters and joined the walking group at the next office event.\""
]
},
{
"reaction": "Elena nods.",
"dialogue": [
"\"Tessa takes a walk after lunch when she has had too many meetings.\"",
"\"I went with her once and answered two emails before we reached the corner.\"",
"\"She made me put the phone in my bag until we got back to the office.\"",
"\"The messages were still there when we returned, which was irritatingly reassuring.\""
]
},
{
"reaction": "Elena rubs the heel of her hand.",
"dialogue": [
"\"I tried a beginner climbing class.\"",
"\"The wall was not the hard part. Letting go of the first hold was.\"",
"\"I made it down very slowly.\""
]
},
{
"reaction": "Elena taps one finger against her knee.",
"dialogue": [
"\"I like watching sports data more than I like watching sports.\"",
"\"Then somebody explains why the numbers missed the whole game.\"",
"\"They are usually right, which is annoying.\""
]
},
{
"reaction": "Elena smiles.",
"dialogue": [
"\"I spent an hour staring at a report because two totals would not match.\"",
"\"I took the long route through the park, came back and found a filter left on one column.\"",
"\"The walk did not solve it, but looking away for twenty minutes helped me notice the filter.\""
]
}
]
},
{
"action": "talk_art",
"success": [
"\"I like it when the work gives me one thing to come back to.\"",
"\"That color is doing more than I noticed at first.\"",
"\"I don't know the right terms, but I know which part I would keep looking at.\"",
"\"Tell me what you saw before you looked up what it was meant to mean.\""
],
"failure": [
"\"I think I need a less clever explanation.\"",
"\"That may be true. I just don't see it in this one.\"",
"\"You're ahead of me. Show me the part you mean.\"",
"\"I can see why somebody likes it. I don't think I do yet.\""
],
"storyPool": [
{
"reaction": "Elena rubs the side of her thumb.",
"dialogue": [
"\"Clara asked me which poster made people stop at an event page.\"",
"\"The answer was the messy one, not the polished one.\"",
"\"She was pleased. The designer was not.\""
]
},
{
"reaction": "Elena smiles faintly.",
"dialogue": [
"\"I have a print at home that is mostly pale blue and one red chair.\"",
"\"I bought it because I kept looking at it while I was waiting for someone.\"",
"\"I still cannot explain why I like it.\""
]
},
{
"reaction": "Elena folds one hand over the other.",
"dialogue": [
"\"A client once wanted a dashboard that looked like a museum wall.\"",
"\"It had six shades of grey and no labels.\"",
"\"We gave it labels in the end.\""
]
},
{
"reaction": "Elena laughs once.",
"dialogue": [
"\"I went to a student show with Zoe.\"",
"\"She read every caption. I looked at the work first.\"",
"\"We liked different pieces and spent the walk home arguing about one of them.\""
]
},
{
"reaction": "Elena looks thoughtful.",
"dialogue": [
"\"Iris showed me a page of sketches beside the finished mural design once.\"",
"\"One figure had moved from the centre to the edge over four different drawings.\"",
"\"I kept comparing them because the final position looked obvious only after I saw the earlier ones.\""
]
}
]
},
{
"action": "talk_music",
"success": [
"\"I hear the hook now. I missed it the first time.\"",
"\"That is better when you leave a little space before the chorus.\"",
"\"Put that one on again. I was listening to the words this time.\"",
"\"I don't know much about the genre, but that singer sounds like she means it.\""
],
"failure": [
"\"I think I needed a quieter place to hear that properly.\"",
"\"You are going to have to tell me which part you like.\"",
"\"I lost the song under everything else happening in it.\"",
"\"Maybe it gets there later. I am not there yet.\""
],
"storyPool": [
{
"reaction": "Elena smiles.",
"dialogue": [
"\"Diana sent me a clip from one of her streams and asked why chat stayed longer.\"",
"\"The song changed just before the numbers climbed.\"",
"\"She said people had stayed because it was a good song. We marked the time anyway and compared it with the next three streams.\""
]
},
{
"reaction": "Elena taps a fingertip against her knee.",
"dialogue": [
"\"I made a playlist for a long data-cleaning job and filled it with songs I already knew.\"",
"\"I spent the first afternoon singing along and finished almost none of the work.\"",
"\"The next day I replaced them with instrumental tracks and finally met the deadline.\""
]
},
{
"reaction": "Elena looks a little sheepish.",
"dialogue": [
"\"I went to see Sofia sing once because Diana invited me.\"",
"\"I thought I would stay for two songs.\"",
"\"I stayed until the end and missed my train.\""
]
},
{
"reaction": "Elena nods slowly.",
"dialogue": [
"\"My father used to play the same album on Sunday mornings.\"",
"\"I complained about it every week because he always started before I was properly awake.\"",
"\"Now the first song reminds me of burnt toast and him reading the newspaper at the kitchen table.\""
]
},
{
"reaction": "Elena gives a small shrug.",
"dialogue": [
"\"Sofia sang slightly behind the beat during one song when I saw her live.\"",
"\"The recorded version is cleaner, but I kept expecting that small delay when I played it later.\"",
"\"I still prefer the live clip Diana sent me.\""
]
}
]
},
{
"action": "talk_finance",
"success": [
"\"That is useful. You said what changes if the numbers are wrong.\"",
"\"I like that you started with the cost instead of the slogan.\"",
"\"Okay, show me the boring part. That is usually where the answer is.\"",
"\"That is a reasonable forecast, not a promise. I can work with that.\""
],
"failure": [
"\"That is a very tidy answer to a messier question.\"",
"\"You skipped the part where somebody has to pay for it.\"",
"\"I need the monthly number before I can care about the percentage.\"",
"\"I don't think we know enough to call that a plan.\""
],
"storyPool": [
{
"reaction": "Elena leans closer.",
"dialogue": [
"\"Paige once gave me a forecast with every number rounded to the nearest thousand.\"",
"\"It looked beautiful and told me almost nothing.\"",
"\"We kept the clean version for the client and used the messy one to make decisions.\""
]
},
{
"reaction": "Elena looks mildly amused.",
"dialogue": [
"\"My first freelance invoice came in late enough that I checked my bank app every morning.\"",
"\"After that I set aside a month of rent before I bought anything unnecessary.\"",
"\"I am still not great at the unnecessary part.\""
]
},
{
"reaction": "Elena folds her hands.",
"dialogue": [
"\"A client asked whether a promotion had paid for itself.\"",
"\"They had not counted the discount in the cost.\"",
"\"The answer changed once we put it back in.\""
]
},
{
"reaction": "Elena smiles.",
"dialogue": [
"\"I used to think a budget was only a list of things I was not allowed to buy.\"",
"\"Then my laptop charger failed and I already had enough set aside to replace it that afternoon.\"",
"\"After that, keeping a small equipment fund felt much less restrictive.\""
]
},
{
"reaction": "Elena looks down briefly.",
"dialogue": [
"\"My mother keeps cash in an envelope for emergencies.\"",
"\"I made her a spreadsheet instead.\"",
"\"She uses the envelope and asks me to update the spreadsheet anyway.\""
]
},
{
"reaction": "Elena gives a quiet laugh.",
"dialogue": [
"\"A restaurant owner wanted to cut the cheapest item on the menu.\"",
"\"It was the thing that brought people in with their kids.\"",
"\"We checked the receipts before he changed it.\""
]
},
{
"reaction": "Elena narrows her eyes a little.",
"dialogue": [
"\"A client once asked me to redraw a forecast so every month showed growth.\"",
"\"The sales data did not support that, and changing the chart would not change the expected revenue.\"",
"\"I kept the slower months in and added notes explaining them.\""
]
},
{
"reaction": "Elena relaxes into a small smile.",
"dialogue": [
"\"Paige says I am too cautious with estimates.\"",
"\"I say she is too comfortable with optimistic ones.\"",
"\"We usually compare both versions and choose a number between them. Neither of us gets to say she won.\""
]
}
]
},
{
"action": "talk_computers",
"success": [
"\"That is useful. Tell me what it does when it fails.\"",
"\"I don't need a perfect model. I need to know when it is wrong.\"",
"\"That answers the question. What data would you test it with first?\"",
"\"Show me the data before you show me the dashboard.\""
],
"failure": [
"\"You skipped the part where it breaks.\"",
"\"That is not an answer. That is a product name.\"",
"\"I think you are explaining the interface, not the problem.\"",
"\"If it needs six tabs open, I will not use it.\""
],
"storyPool": [
{
"reaction": "Elena's face brightens before she catches herself.",
"dialogue": [
"\"Zoe sent me a library export where half the dates had the month and day swapped.\"",
"\"Nothing crashed, but the report put some April loans in August.\"",
"\"We standardised the dates and reran the report before Mina used it for the monthly totals.\""
]
},
{
"reaction": "Elena smiles.",
"dialogue": [
"\"My first attendance model predicted a client's busiest week would be in December.\"",
"\"The training data included a holiday promotion that had brought in almost three times the usual customers.\"",
"\"The model treated that week as normal, so I excluded it and ran the forecast again.\"",
"\"The second result was much closer to what the client saw during the rest of the year.\""
]
},
{
"reaction": "Elena rubs her thumb over her knuckle.",
"dialogue": [
"\"A manager once asked me to make a dashboard with one big green number.\"",
"\"I asked what the number meant.\"",
"\"He said he would decide that after he saw it.\""
]
},
{
"reaction": "Elena looks pleased.",
"dialogue": [
"\"I like small models because I can show people why they gave an answer.\"",
"\"A shop owner does not need a machine to sound clever.\"",
"\"She needs to know whether to order more stock next week.\""
]
},
{
"reaction": "Elena glances down.",
"dialogue": [
"\"I spent two evenings looking for a bug in a forecast.\"",
"\"It was one empty cell in a file somebody had copied by hand.\"",
"\"I was relieved and angry at the same time.\""
]
},
{
"reaction": "Elena gives a small laugh.",
"dialogue": [
"\"Diana wanted to know whether chat liked a new stream format.\"",
"\"The viewer count dipped, but people watched longer.\"",
"\"We agreed to test the format three more times before deciding whether to keep it.\""
]
},
{
"reaction": "Elena looks thoughtful.",
"dialogue": [
"\"A lecturer in my evening course showed us a model that predicted loan approvals with very high accuracy.\"",
"\"Then he showed us that the training data contained almost no applicants under twenty-five.\"",
"\"He made us write that limitation at the top of the report before we discussed the accuracy.\""
]
},
{
"reaction": "Elena nods.",
"dialogue": [
"\"I keep the early versions of my models in a folder instead of deleting them.\"",
"\"Last month I almost reused a method that had failed on a similar dataset.\"",
"\"The old notes reminded me why I had abandoned it, so I tried something else.\""
]
},
{
"reaction": "Elena presses her lips together to hide a smile.",
"dialogue": [
"\"Clara once asked whether a busy event page meant people would buy tickets.\"",
"\"It turned out most of the clicks were people checking the address.\"",
"\"We added a map and the page got quieter. Ticket sales went up.\""
]
},
{
"reaction": "Elena looks directly at you.",
"dialogue": [
"\"A consultant once gave us a forecasting system nobody on the team could explain.\"",
"\"When it produced a strange result, he told us the model was too complicated to inspect.\"",
"\"We stopped using it. A slower system we can check is more useful to us.\""
]
}
]
},
{
"action": "massage_start",
"success": [
"\"All right. Start at my shoulders and don't rush.\"",
"\"You can. Just give me a second to get comfortable.\""
],
"failure": [
"\"Not today. I don't want to be touched right now.\"",
"\"No, sorry. My body is already too tense for that.\""
]
},
{
"action": "invite_meal",
"success": [
"\"You are cooking? I'd like that. Tell me what you need me to bring.\"",
"\"Okay. But please make enough food for a normal person.\""
],
"failure": [
"\"Not tonight. I have work I need to finish.\"",
"\"I appreciate it, but I can't stay out that long today.\""
]
},
{
"action": "invite_photoshoot",
"success": [
"\"A photoshoot? I can try it. Just tell me what you want from me.\"",
"\"Okay. I might be awkward at first, so don't pretend I won't be.\""
],
"failure": [
"\"Not today. I don't feel like being in front of a camera.\"",
"\"I like the idea more than I like doing it right now.\""
]
}
]
}
END_DIALOGUE_DATA %//% REACTION_DATA
{
"girlId": "g8",
"girl": "Elena Park",
"readyVariable": "dialogue009ready",
"notes": [],
"responses": [
{
"action": "talk_computers",
"success": [
"Elena follows the explanation and asks which data you would test first.",
"She listens without interrupting, then asks what happens when the system gives the wrong answer."
],
"failure": [
"Elena waits for the missing step, then realises it is not coming.",
"She asks you to go back to the part where the problem first appeared."
]
},
{
"action": "talk_finance",
"success": [
"Elena stops fidgeting with her sleeve and follows the numbers with you.",
"She asks for the assumption behind the answer, then gives a small nod."
],
"failure": [
"Elena points to the cost missing from the plan.",
"She asks where the estimate came from before accepting the answer."
]
},
{
"action": "massage_start",
"success": [
"Elena lowers her shoulders a little and gives you room to begin.",
"She takes a breath, then turns enough for your hands to reach her."
],
"failure": [
"Elena steps back before your hands can settle on her.",
"Her apology is quiet, and she steps out of reach before you can answer."
]
}
]
}
END_REACTION_DATA %/